1

我正在尝试使用带有 JSON 请求正文的 REST 模板发送 GET 请求,但请求失败并出现错误,

处理 failedorg.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: [code=400, message=binding element must be a struct]

我曾尝试使用失眠症到达端点并且请求成功通过,我已经放置了 2 个标头

1. Content-Type - application/json
2. Authorization - Bearer ******

和 JSON 正文。

我在 Spring Boot 中的代码如下所示。

    ResponseEntity<String> responseObject = null;
    String URL = "https://myurl/endpoint";
    String requestBody = "{\"requestType\":\"status\"}";
    HttpHeaders headers = new HttpHeaders();
    headers.add("Authorization","Bearer ***");
    headers.setContentType(MediaType.APPLICATION_JSON);
    HttpEntity httpEntity = new HttpEntity<>(body,headers);
    System.out.println(httpEntity+" httpEntity");
    System.out.println(headers+" headers");
    responseObject = restTemplate.exchange(URL, HttpMethod.GET, httpEntity, String.class);

httpentity 和 header 的 sout 看起来像这样

httpEntity

<{"requestType":"status"},[Authorization:"Bearer *******************", Content-Type:"application/json"]>

标题

[Authorization:"Bearer *************************", Content-Type:"application/json"]

另外,当我尝试使用休息模板将没有正文的请求发送到另一个端点时,该请求已成功执行,因此我认为与我发送正文的方式有关的错误与错误有关。

4

1 回答 1

1

rest 模板不支持使用 body 获取请求。有关更多详细信息,您可以参考这篇文章

如果您使用的是 Java 11,我建议您使用java.net.HttpClient来满足您的需求。

于 2022-01-02T15:12:46.600 回答