我目前在一个任务中,我必须发送一个身体的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里,我是新来的,如果我说错了什么,我很抱歉
暂无答案!
目前还没有任何答案,快来回答吧!