spring - 有什么方法可以用 RestTemplate 处理 Stream Json?
问题描述
有什么方法可以application/stream+json
用老式RestTemplate
的方式处理内容webClient
吗?
就我的尝试而言,包装类似 restTemplate.getForEntity
in的结果Flux.just(<convert response entity to mono here>)
只会返回第一个元素并在此停止,同时webClient
正确处理它,并在生成的 json 中填充出现的新条目。还没有尝试过使用inputStream
,但乍一看它似乎不是我需要的,尽管它的名称中有一个“流”。
不幸的是,webClient
在这种情况下使用将是一个相当昂贵的选择(仍在等待https://github.com/spring-projects/spring-security/issues/4921)。我宁愿实现只有在绝对没有其他方法的情况下才会“很快”正式出现的东西。
解决方案
RestTemplate
正在公开一个不打算用于流式传输 HTTP 响应的 API。每次调用后都会读取并关闭底层 HTTP 响应,而"application/stream+json"
媒体类型则用于流式响应。
我没有看到任何方法可以RestTemplate
通过设计正确处理这个用例(读取流响应)(查看SPR-14882以获取另一个示例)。因此,您可能必须等待该问题得到解决或使用具有此类功能的另一个 HTTP 客户端。
推荐阅读
- python - 使用 python 2.7 构建 Conda noarch 包
- arrays - 如何在反应中使用 jest 编写单元测试用例?
- python - 如何在 python 2.7 中处理 Unicode 问题而不忽略
- flutter - Flutter 是否可以在不创建新状态的情况下推送已经初始化的页面?
- sql - 转换行中的列名
- ajax - 为什么 Symfony4 在这个 ajax 请求上给匿名用户?
- cordova - Cordova 插件 - 安装特定平台的最后可用版本
- javascript - AmplifyJS 状态错误类型错误:无法读取未定义的属性“状态”
- angular - 更改路由物料表时闪烁
- javascript - 当文本匹配选择时支持输入框