首页 > 解决方案 > 有什么方法可以用 RestTemplate 处理 Stream Json?

问题描述

有什么方法可以application/stream+json用老式RestTemplate的方式处理内容webClient吗?

就我的尝试而言,包装类似 restTemplate.getForEntityin的结果Flux.just(<convert response entity to mono here>)只会返回第一个元素并在此停止,同时webClient正确处理它,并在生成的 json 中填充出现的新条目。还没有尝试过使用inputStream,但乍一看它似乎不是我需要的,尽管它的名称中有一个“流”。

不幸的是,webClient在这种情况下使用将是一个相当昂贵的选择(仍在等待https://github.com/spring-projects/spring-security/issues/4921)。我宁愿实现只有在绝对没有其他方法的情况下才会“很快”正式出现的东西。

标签: springspring-mvcspring-webflux

解决方案


RestTemplate正在公开一个不打算用于流式传输 HTTP 响应的 API。每次调用后都会读取并关闭底层 HTTP 响应,而"application/stream+json"媒体类型则用于流式响应。

我没有看到任何方法可以RestTemplate通过设计正确处理这个用例(读取流响应)(查看SPR-14882以获取另一个示例)。因此,您可能必须等待该问题得到解决或使用具有此类功能的另一个 HTTP 客户端。


推荐阅读