У меня есть RESTful API, с которым я пытаюсь подключиться через Android и RestTemplate. Все запросы к API аутентифицируются с помощью HTTP-аутентификации, путем установки заголовков HttpEntity и затем использования метода RestTemplate exchange()
.
Все запросы GET отлично работают, но я не могу понять, как выполнить аутентифицированные POST-запросы. postForObject
и postForEntity
обрабатывать POST, но не имеют простого способа установить заголовки аутентификации.
Итак, для GET это отлично работает:
HttpAuthentication httpAuthentication = new HttpBasicAuthentication("username", "password");
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAuthorization(httpAuthentication);
HttpEntity<?> httpEntity = new HttpEntity<Object>(requestHeaders);
MyModel[] models = restTemplate.exchange("/api/url", HttpMethod.GET, httpEntity, MyModel[].class);
Но POST, по-видимому, не работают с exchange()
, поскольку он никогда не отправляет настроенные заголовки, и я не вижу, как установить тело запроса с помощью exchange()
.
Каков самый простой способ сделать аутентифицированные POST-запросы из RestTemplate?