在get方法中发送请求正文不起作用

zhte4eai  于 2021-07-23  发布在  Java
关注(0)|答案(0)|浏览(207)

我目前在一个任务中,我必须发送一个身体的get请求。我知道这不是一个好的做法,我应该通过查询参数发送json。但我一定要这样做。
所以让我们继续。我用 RestTemplate 有交换但由于 SimpleClientHttpRequestFactory 实现我不能用get方法发送正文。

RestTemplate template = new RestTemplate(new CustomClientHttpRequestFactory());
httpHeaders.setContentType(APPLICATION_JSON);
httpHeaders.set("token", token.getToken());
httpHeaders.set("companyId", companyId);
URI uri = new URI(getInspectionsUrl);

HttpEntity<InspectionsInputDTO> entity = new HttpEntity<InspectionsInputDTO>(inputDTO, httpHeaders);
response = template.exchange(uri, GET, entity, InspectionsResponseDTO.class);

经过研究,我发现了以下代码:

class CustomClientHttpRequestFactory extends SimpleClientHttpRequestFactory {

    @Override
    protected void prepareConnection(HttpURLConnection connection, String httpMethod) throws IOException {

        super.prepareConnection(connection, httpMethod);
        if ("GET".equals(httpMethod)) {
            connection.setDoOutput(true);
        }
    }
}
// RestTemplate initialization
RestTemplate template = new RestTemplate(new CustomClientHttpRequestFactory());

它试图覆盖 SimpleClientHttpRequestFactory httpmethod允许但id不起作用。问题是,如何在get request中发送请求体 RestTemplate . 也许还有另一种方法 SimpleClientHttpRequestFactory . 在这个陌生的Spring里,我是新来的,如果我说错了什么,我很抱歉

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题