栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用RestTemplate获取InputStream

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用RestTemplate获取InputStream

您不应该

InputStream
直接获得。
RestTemplate
旨在封装处理响应(和请求)内容。它的优势在于处理所有IO,并为您提供现成的Java对象。

的一位

RestTemplate
原始作者Brian Clozel 表示:

RestTemplate
并不意味着流响应主体;它的合同不允许这样做,而且已经存在了很长时间,以至于在不中断许多应用程序的情况下就无法更改其行为的这一基本部分。

您需要注册适当的

HttpMessageConverter
对象。这些对象将可以
InputStream
通过
HttpInputMessage
对象访问响应的。

作为Abdull表明,Spring并配备了

HttpMessageConverter
用于实现
Resource
其自身的包装
InputStream
ResourceHttpMessageConverter
。它不支持所有
Resource
类型,但是由于无论如何都应该对接口进行编程,因此应该只使用superinterface
Resource

当前的实现(4.3.5)将返回

ByteArrayResource
,并将响应流的内容复制到
ByteArrayInputStream
可以访问的新内容。

您不必关闭流。在

RestTemplate
你需要照顾那个。(这很不幸,如果您尝试使用
InputStreamResource
,则支持的另一种类型
ResourceHttpMessageConverter
,因为它包装了底层的响应,
InputStream
但是在可以公开给客户代码之前已被关闭。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496572.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号