Я пытаюсь сделать запрос GET на URL с телом запроса.После поиска в Интернете я обнаружил, что для меня это противоречит соглашению включать тело запроса с запросом GET.Но я все еще хочу знать, есть ли способ, так как Почтальон позволяет функциональность.Я пытаюсь реализовать эту функцию в Spring, как правило, используя их класс RestTemplate.У меня есть следующее:
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 даже имеет эту функцию, где он генерирует код для желаемого языка (статья) Я попробовал этот метод, и Unirest и OKHttp не позволяют мне иметь тело запроса какчасть моего запроса.
Есть предложения?
Кроме того, каков отраслевой стандарт в использовании GET для больших запросов, которые обычно не включаются в параметры запроса?