Я использую следующее для получения JSON через RestTemplate в Spring 4:
protected DocInfoResponse retrieveData(String urlWithAuth) {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Basic " + auth.getSig());
HttpEntity<String> request = new HttpEntity<String>(headers);
ResponseEntity<DocInfoResponse> response = restTemplate.exchange(urlWithAuth, HttpMethod.GET, request, DocInfoResponse.class);
return response.getBody();
}
Я использовал тот же код (с другим классом ответа), чтобы успешно получить документ JSON с того же сайта (с разными параметрами, чтобы получить другой документ).
Когда я выполняю приведенный выше код, я получаю следующую трассировку стека (частично):
Caused by: org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
at
org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91) ~[spring-web-4.3.7.RELEASE.jar:4.3.7.RELEASE]
Может ли кто-нибудь указать мне, почему это может быть исключением?
auth.getSig()
сгенерировала цифровую подпись, поскольку в большинстве случаев она проверяется на основании информации о клиенте, указанной в URL-адресе. - person Coder   schedule 17.03.2017