Ошибка 403 во время запроса GET из приложения Java - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь выполнить GET-запрос с клиентом JAVA, использующим библиотеку RestTemplate, что приводит к следующей ошибке:

Exception in thread "main" org.springframework.web.client.HttpClientErrorException$Forbidden: 403 Forbidden

Когда я пытаюсь получить тот же URL-адрес из командной строки, это работает нормально. Отправьте здесь команду cURL и фрагмент кода Java.

cURL:

curl -X GET -H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" https://xxxx-xxxx-xxxx {"key":"value"}

JAVA фрагмент:

String URL="https://xyz";
RestTemplate restTemplate = new RestTemplate();

HttpHeaders headers = new HttpHeaders();

//setting up the required headers
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
headers.set("Authorization", "Bearer "+accessToken);

HttpEntity<String> entity = new HttpEntity<String>("body",headers);

//get request
ResponseEntity<String> responseEntity = restTemplate.exchange(URL, HttpMethod.GET, entity, String.class);

PS - проблема в том, что URL-адрес HTTPS вместо HTTP?

1 Ответ

1 голос
/ 13 января 2020

Добавьте заголовок пользовательского агента, попробуйте и дайте нам знать, если он работает.

String URL="https://xyz";
RestTemplate restTemplate = new RestTemplate();

HttpHeaders headers = new HttpHeaders();

//setting up the required headers
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
//settting user agent
headers.add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36");

headers.set("Authorization", "Bearer "+accessToken);

HttpEntity<String> entity = new HttpEntity<String>("body",headers);

//get request
ResponseEntity<String> responseEntity = restTemplate.exchange(URL, HttpMethod.GET, entity, String.class);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...