我有一个 RESTful API,我试图通过 Android 和 RestTemplate 连接。所有对 API 的请求都通过 HTTP Authentication 进行身份验证,通过设置 HttpEntity 的标头,然后使用 RestTemplate 的exchange()
方法。
所有 GET 请求都以这种方式工作得很好,但我无法弄清楚如何完成经过身份验证的 POST 请求。postForObject
并postForEntity
处理 POST,但没有简单的方法来设置 Authentication 标头。
所以对于 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()
.
从 RestTemplate 发出经过身份验证的 POST 请求的最简单方法是什么?