Установка пользовательского заголовка при вызове Spring RestTemplate GET

Я использую Spring REST Template для вызова внешнего публичного REST API. В рамках аутентификации API мне нужно отправить пользовательский ключ в заголовке. Я не уверен, как установить пользовательский атрибут заголовка в вызове шаблона Spring REST GET.

RestTemplate restTemplate = new RestTemplate();
<Class> object = restTemplate.getForObject("<url>","<class type>");

Я обнаружил, что это можно сделать с помощью класса HttpHeaders, установив set("key","value"), но не нашел никакого конкретного примера. Дайте мне знать, если у вас есть информация.

2 ответа

Решение

Чтобы передать пользовательский атрибут в запросе REST через заголовок запроса, нам нужно создать новый объект HTTPHeaders, установить ключ и значение с помощью метода set и передать его в HttpEntity, как показано ниже.

Следующим RestTemplate может быть метод exchange() с параметром метода HttpEntity.

 HttpHeaders headers = new HttpHeaders();
 headers.set("custom-header-key","custom-header-value");
 HttpEntity<String> entity = new HttpEntity<>("paramters",headers);

 RestTemplate restTemplate = new RestTemplate();
 ResponseEntity<ResponseObj> responseObj = restTemplate.exchange("<end point url>", HttpMethod.GET,entity,ResponseObj.class);
 ResponseObj resObj = responseObj.getBody();

Попробуйте что-то вроде этого

HttpHeaders createHeaders(String username, String password){

вернуть новый HttpHeaders() {{

Строка auth = имя пользователя + ":" + пароль;

byte [] encodedAuth = Base64.encodeBase64 (

auth.getBytes (Charset.forName ("US-ASCII")));

String authHeader = "Basic" + новая строка (encodedAuth);

set ("Авторизация", authHeader);

}};

}

Я надеюсь, что это поможет вам:)

Другие вопросы по тегам