У меня есть 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?