尝试在春季使用 webClient 在 post 请求中发送字符串列表

Posted

技术标签:

【中文标题】尝试在春季使用 webClient 在 post 请求中发送字符串列表【英文标题】:Trying to Send list of string in post request using webClient in spring 【发布时间】:2020-12-24 02:25:14 【问题描述】:

我正在尝试使用 webClient 发送字符串列表,但我是 遇到异常。

我使用了Flux.fromIterable(strList),但它合并了之前的所有数据 发送,因为那个而不是我收到的字符串列表 在映射类上组合单个字符串。

 List<String> str = new ArrayList<>();
             str.add("korba");
             str.add("raipur");
             str.add("bhilai");

   Flux<Object> responsePost = webClient.build()
                      .post()
                      .uri(url)
                      .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
                      .body(Flux.fromIterable(str), String.class)
                      .retrieve()
                      .bodyToFlux(Object.class);

【问题讨论】:

【参考方案1】:

您不能发送Flux 字符串,因为它将它们组合成一个字符串。看,

WebClient bodyToFlux(String.class) for string list doesn't separate individual value

您正在Flux.fromIterable(str) 创建一个Flux 字符串。您需要做的是将字符串放入包装类或发送列表的Mono。参见,例如,Reactive Programming: Spring WebFlux: How to build a chain of micro-service calls?

【讨论】:

感谢它的工作,我创建了新类并创建了列表变量。使用类的引用能够访问 API。

以上是关于尝试在春季使用 webClient 在 post 请求中发送字符串列表的主要内容,如果未能解决你的问题,请参考以下文章

使用 WebClient 将带有标头的请求发送到第三方 api

WebClient 与 RestTemplate

如何在 webclient 的 post 请求中发送 x-www-form-urlencoded? [复制]

通过 WebClient 使用 POST 值上传文件

Webclient maven依赖错误

如何使用 WebClient 反应式 Web 客户端发送带有 zip 正文的 POST 请求