Spring RestTemplate GET-запрос не дает правильного ответа - PullRequest
0 голосов
/ 19 июня 2019

Когда я выполняю запрос на получение с RestTemplate, ответ сервера не совпадает с тем, что я получаю с помощью скручивания или в моем браузере

Я попытался поиграть с кодировкой URL и записать URL-адрес наконсоль для дальнейшего устранения неполадок, но не может объяснить это расхождение.

UriComponents uriComponents = UriComponentsBuilder.fromHttpUrl(URL + "search/all")
                .queryParam("keywords", UriUtils.encode(person, StandardCharsets.UTF_8))
                .build(true);
ResponseEntity<String> responseEntity = restTemplate.getForEntity(uriComponents.toUriString(), String.class);

Результирующий URL из RestTemplate:
https://example.com/api/v3/search/all?keywords=%C3%89tienne%20Racicot
возвращает ответ: {}

Выполнение: curl https://example.com/api/v3/search/all?keywords=%C3%89tienne%20Racicot
возвращает ответ: {Person: {...} }

1 Ответ

0 голосов
/ 19 июня 2019

Мне удалось решить мою проблему, изменив уровень ведения журнала для класса RestTemplate для отладки. Добавьте logging.level.org.springframework.web.client.RestTemplate=DEBUG к application.properties, и вы получите подробный журнал запросов, выполняемых RestTemplate. Это помогло мне заметить, что это был кодировщик URL, который я передавал во второй раз, который я не хочу. Чтобы избежать этого, передайте uriComponents.toUri() в restTemplate.getForEntity(..) вместо строки.

...