如何从 RestTemplate 读取响应标头?
我正在使用 RestTemplate.postForObject 将信息发布到 Web 服务。除了结果字符串之外,我还需要响应标头中的信息。有什么办法可以得到这个吗?
RestTemplate template = new RestTemplate();
String result = template.postForObject(url, request, String.class);
I am posting information to a web service using RestTemplate.postForObject. Besides the result string I need the information in the response header. Is there any way to get this?
RestTemplate template = new RestTemplate();
String result = template.postForObject(url, request, String.class);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
好吧,我终于想通了。交换方法正是我所需要的。它返回一个包含完整标头的 HttpEntity。
Ok, I finally figured it out. The exchange method is exactly what i need. It returns an HttpEntity which contains the full headers.
最好的办法是使用 execute 方法并传入 ResponseExtractor 将有权访问标头。
另一个选项(不太干净)是扩展 RestTemplate 并覆盖对 doExecute 的调用,并在其中添加任何特殊的标头处理逻辑。
Best thing to do whould be to use the execute method and pass in a ResponseExtractor which will have access to the headers.
Another option (less clean) is to extend RestTemplate and override the call to
doExecute
and add any special header handling logic there.我不知道这是否是推荐的方法,但如果您将模板配置为使用自定义
HttpMessageConverter
。I don't know if this is the recommended method, but it looks like you could extract information from the response headers if you configure the template to use a custom
HttpMessageConverter
.