提问人:Khaski 提问时间:5/15/2023 更新时间:5/15/2023 访问量:139
如何在Spring Boot应用程序中通过GET请求将请求体中的json数据发送到外部API
How to send json data in request body through GET request to external API in Spring Boot application
问:
我必须将 json 数据发送到外部 api 才能发布方法从这个外部 api 获取数据。 我想发送的 JSON 数据就是这样。 { “key1” : “值1”, “key2” : “值2”, “key3” : “值3” } 如何在Spring Boot应用程序中通过GET请求将请求体中的json数据发送到外部API
答:
2赞
mattijah
5/15/2023
#1
如果 JSON 数据较大或包含特殊字符,则在 URL 中对整个 JSON 数据进行编码可能不切实际。最好使用 POST 请求而不是 GET 请求在请求正文中传输 JSON 数据。如果需要这样做,您可以尝试以下操作:
public void sendData(String jsonData) throws URISyntaxException {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
String url = "https://yoururl.com/api?data=" + jsonData;
RequestEntity<?> requestEntity = new RequestEntity<>(headers, HttpMethod.GET, new URI(url));
ResponseEntity<String> responseEntity = restTemplate.exchange(requestEntity, String.class); // GET request
String responseBody = responseEntity.getBody();
// do your stuff
}
评论
0赞
Khaski
5/15/2023
我需要使用我的 Spring Boot 应用程序向外部应用程序发出请求,以便从中接收数据,但为了接收这些数据,我需要从我的应用程序以 json 格式发送数据。外部 API 发布后使用的方法,我的方法是 get ,但在我的应用程序中使用哪种方法并不重要。我该怎么做?
0赞
mattijah
5/15/2023
不建议这样做,因为此处的另一个答案中提到了这一点。我发布的代码可以工作,但是,根据 HTTP 协议标准不建议这样做。理想情况下,如果外部 API 需要 JSON 数据,则应使用 POST 请求而不是 GET 请求在请求正文中发送数据。
0赞
Khaski
5/15/2023
我理解。但是我如何用方法帖子做到这一点。你能举个例子吗?
评论