Метод GET с телом JSON и авторизация на предъявителя с RestTemplate - PullRequest
1 голос
/ 12 апреля 2019

Я знаю .... это не лучшая практика, но меня об этом просили:

Я пытаюсь получить конечную точку, которая получает json тело с 3 параметрами (int, int, int) и имеет Аутентификацию на предъявителя.

Заголовки

header.setContentType(MediaType.APPLICATION_JSON);
header.set("authorization", bearerToken);

Сущность

HttpEntity<String> entity = new HttpEntity<>(requestjson.toString(), header);

RestTemplate

ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);

System.out.print (entity):

<{"1stParam":1,"2ndParam":4881,"3rdParam":0},{Content-Type=[application/json], authorization=[Bearer bearerToken]}>

, кроме безопасности и всех подобных проблем, запрос показывает 400 HTTP response через RestTemplate, Почтальон работает отлично .

Я также пытался HttpURLConnection, но у меня была та же проблема.

СпасибоВам за помощь:)

1 Ответ

0 голосов
/ 14 апреля 2019

Я только что написал подобное решение, так что я почти уверен, что знаю, что это такое. Вы должны включить Bearer в заголовок Authorization. Я думаю, что это изменение кода решит вашу проблему:

header.set("Authorization", "Bearer " + bearerToken);

Я прописал заглавную клавишу. Я не думаю, что это имеет значение, но я знаю, что заглавная версия просто работала для меня. Мой код выглядит так, и он работает.

Основная идея здесь заключается в том, что заголовок Authorization должен всегда начинаться с вида выполняемой авторизации, чтобы сервер мог знать, какой тип вы хотите использовать. Имеет смысл, что это ошибка 400, а не 404, потому что заголовок технически поврежден.

...