Spring RestTemplate учетные данные / авторизация в заголовке 401-неавторизован, где в почтальоне работает нормально - PullRequest
0 голосов
/ 17 января 2019

с использованием почтальона, для запроса GET со значениями заголовка для имени пользователя и пароля и успешного подключения к службе отдыха и получения ответа 200.

enter image description here

Но при попытке получить доступ к тому же запросу с помощью Java-кода с помощью Spring RestTemplate, получая 401-unauthorized проблему.

это код

      final String uri = "http://<host>:<port>/services/arecord";

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
        map.add("username", "admin");
        String password = "admin";

        map.add("password", password);
        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map, headers);

        RestTemplate restTemplate = new RestTemplate();

        try {
            ResponseEntity<String> response = restTemplate.exchange(uri, HttpMethod.GET,
                    new HttpEntity(createHeaders("admin", "admin")), String.class);
            String body = response.getBody();

        } catch (HttpClientErrorException e) {

            logger.info("****** ERROR *********** " + e.getMostSpecificCause());
            return true;
        }

1 Ответ

0 голосов
/ 17 января 2019

Я не проверял это, но попробуйте что-то вроде этого:

final String uri = "http://<host>:<port>/services/arecord";

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("username", "admin");
headers.set("password", "admin");

HttpEntity entity = new HttpEntity(headers);
RestTemplate restTemplate = new RestTemplate();

try {
      ResponseEntity<String> response = restTemplate.exchange(
        uri, HttpMethod.GET, entity, String.class);

      String body = response.getBody();

} catch (HttpClientErrorException e) {
      logger.info("****** ERROR *********** " + e.getMostSpecificCause());
      return true;
}
...