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

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

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

  1. RestTemplate template = new RestTemplate(new CustomClientHttpRequestFactory());
  2. httpHeaders.setContentType(APPLICATION_JSON);
  3. httpHeaders.set("token", token.getToken());
  4. httpHeaders.set("companyId", companyId);
  5. URI uri = new URI(getInspectionsUrl);
  6. HttpEntity<InspectionsInputDTO> entity = new HttpEntity<InspectionsInputDTO>(inputDTO, httpHeaders);
  7. response = template.exchange(uri, GET, entity, InspectionsResponseDTO.class);

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

  1. class CustomClientHttpRequestFactory extends SimpleClientHttpRequestFactory {
  2. @Override
  3. protected void prepareConnection(HttpURLConnection connection, String httpMethod) throws IOException {
  4. super.prepareConnection(connection, httpMethod);
  5. if ("GET".equals(httpMethod)) {
  6. connection.setDoOutput(true);
  7. }
  8. }
  9. }
  10. // RestTemplate initialization
  11. RestTemplate template = new RestTemplate(new CustomClientHttpRequestFactory());

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

暂无答案!

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

相关问题