You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebClient发送POST请求时能否将Flux作为请求体传递?

WebClient传递Flux请求体的实现方案

正确代码写法

你可以直接将Flux作为Publisher传入body方法,指定元素类型即可,无需手动转换为列表:

Flux<Product> getProducts(Flux<String> ids) {
  return webClient.post().uri("/products")
      .body(ids, String.class)
      .retrieve()
      .bodyToFlux(Product.class);
}

你也可以显式调用BodyInserters方法实现相同效果:

.body(BodyInserters.fromPublisher(ids, String.class))

说明

  • 上述写法会直接以响应式流的形式传递数据,不会提前收集所有id转为List,完全符合你的需求。
  • WebClient会自动将流内的字符串元素序列化为JSON数组发送,服务端的@RequestBody Flux<String>可以直接正常解析接收。
  • 如果需要使用流式媒体类型,可在body方法前添加.contentType(MediaType.APPLICATION_NDJSON)指定,默认的application/json也可正常处理该场景。

注意:服务端需保留WebFlux默认的Jackson编解码器配置,无需额外修改即可支持流式请求体解析。

内容的提问来源于stack exchange,提问作者Monta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:39:00