Eri*_*las 32 java spring resttemplate
我使用RestTemplate.postForObject将信息发布到Web服务.除了结果字符串,我还需要响应头中的信息.有没有办法得到这个?
RestTemplate template = new RestTemplate();
String result = template.postForObject(url, request, String.class);
Run Code Online (Sandbox Code Playgroud)
Eri*_*las 53
好吧,我终于明白了.交换方法正是我所需要的.它返回一个包含完整标题的HttpEntity.
RestTemplate template = new RestTemplate();
HttpEntity<String> response = template.exchange(url, HttpMethod.POST, request, String.class);
String resultString = response.getBody();
HttpHeaders headers = response.getHeaders();
Run Code Online (Sandbox Code Playgroud)
最好的办法是使用execute方法并传入一个ResponseExtractor,它可以访问头文件.
private static class StringFromHeadersExtractor implements ResponseExtractor<String> {
public String extractData(ClientHttpResponse response) throws
{
return doSomthingWithHeader(response.getHeaders());
}
}
Run Code Online (Sandbox Code Playgroud)
另一个选项(不太干净)是扩展RestTemplate并覆盖调用doExecute并在那里添加任何特殊的头处理逻辑.
| 归档时间: |
|
| 查看次数: |
38410 次 |
| 最近记录: |