gpt4 book ai didi

java - 如何在Spring中使用restTemplate通过请求主体发出GET请求

转载 作者:行者123 更新时间:2023-12-02 00:08:35 24 4
gpt4 key购买 nike

我正在尝试向带有请求正文的URL发出GET请求。在网上搜索之后,我发现在请求正文中包含GET请求是违反惯例的。但是我仍然想知道自Postman允许功能以来是否有办法。我正在尝试通常使用其RestTemplate类在Spring中实现此功能。我有以下几点:

   public List<CustomObj> findLeads(List<String> usernames)
{
log.info("getLeads:+ usernames={}", usernames);
final HttpEntity<List<String>> httpEntityWithHeaders = createHttpEntityWithHeaders(usernames);
final String uri = serviceHost + RESTFulURIConstants.LEADS_PATH_VIA_USERNAME;

log.info("Calling uri from getLeads method, uri={}", uri);

final ResponseEntity<List<CustomObj>> responseEntity = restTemplate.exchange(uri,
HttpMethod.GET,
httpEntityWithHeaders,
TYPE_REFERENCE_LEAD_RESPONSE);

log.info("getLeads:-");

return responseEntity.getBody();
}

private HttpEntity<List<String>> createHttpEntityWithHeaders(final List<String> usernames)
{
final HttpHeaders headers = new HttpHeaders();
headers.set(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
headers.set(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE);
return new HttpEntity<>(usernames, headers);
}
private static final ParameterizedTypeReference<List<CustomObj>>
TYPE_REFERENCE_LEAD_RESPONSE = new ParameterizedTypeReference<List<CustomObj>>()
{
};


但是我继续得到错误: "Required request body is missing: public java.util.List<CustomObj>。我可以使用Postman成功地调用它,Postman甚至具有此功能,它可以为所需的语言生成代码 (article)。我尝试了该方法,Unirest和OKHttp不允许我将请求正文作为请求的一部分。

有什么建议?

此外,将GET用于通常不在查询参数中的大型查询的行业标准是什么?

最佳答案

如果是常规的get请求,则在URL中发送参数。

如果需要您的请求正文中的数据,我建议您将此请求作为PATCH请求。如果数据对请求不是很重要,但是您希望允许客户端发送一些数据,则这样做没有问题。

关于java - 如何在Spring中使用restTemplate通过请求主体发出GET请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58139355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com