Установка пользовательского заголовка при вызове 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);
}};
}
Я надеюсь, что это поможет вам:)