spring-boot - 尝试在春季使用 webClient 在 post 请求中发送字符串列表
问题描述
我正在尝试使用 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);
解决方案
您不能发送 a Flux
of 字符串,因为它将它们组合成一个字符串。看,
字符串列表的 WebClient bodyToFlux(String.class) 不分隔单个值
您正在创建一个Flux
字符串Flux.fromIterable(str)
。您需要做的是将字符串放入包装类或发送Mono
列表。参见,例如,反应式编程:Spring WebFlux:如何构建微服务调用链?
推荐阅读
- c - C 中的内存泄漏 (MacOS)
- git - 如何按名称查找正在或曾经在远程分支中的文件?
- java - 用于postgres时间戳字段的Spring Jpa LessThanEqual
- java - Spring:无法使用选定字段查询存储库
- flutter - 固定错误:如何解决返回类型'StreamController
' 不是匿名闭包错误所定义的 'Stream' - java - javac无法在项目中导入类
- python - 如何将多行 JSON 字符串作为参数传递给 Python 脚本?
- flutter - 如果不支持颤振库,则忽略
- docker - 在容器中开发和测试
- sql - 如何根据输入参数在 select 查询的 where 子句中运行特定条件?