spring - Spring5 - Reactor API - 发送顺序请求并将响应作为字符串获取
问题描述
我正在发送顺序请求并尝试将响应打印为字符串:
Flux.fromIterable(keywordsList).map(i -> client.get()
.uri("/hello?now-word=" + i)
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(String.class))
.subscribe(item -> System.out.println("item: " + item.toString()));
但这就是我得到的:
item: MonoFlatMap
item: MonoFlatMap
item: MonoFlatMap
item: MonoFlatMap
item: MonoFlatMap
item: MonoFlatMap
item: MonoFlatMap
item: MonoFlatMap
item: MonoFlatMap
item: MonoFlatMap
item: MonoFlatMap
item: MonoFlatMap
我尝试使用 FlatMapIterable,但我不知道如何正确使用它。
解决方案
截至目前,我正在循环发送请求。这是代码,这对我有用:
for(int i = 3; i <= len; i++) {
String searchStr = searchString.substring(0, i);
Mono<ClientResponse> result = client.get()
.uri(autocompleteUri + searchString)
.accept(MediaType.APPLICATION_JSON)
.exchange();
String result1 = ">> result = " + result.flatMap(res -> res.bodyToMono(String.class)).block();
}
但我想知道我们可以通过哪些不同的方式来做到这一点。这是关于这个项目的博客:
推荐阅读
- windows - 使用 power shell 修改“最大内容长度”的 IIS 配置
- unity3d - Unity - 输入字段 - 失去焦点时虚拟键盘自动隐藏
- c++ - 模板转换运算符和 boost::any 或 std::any
- python - 运行许多线性回归模型
- c# - 为什么:LINQ to Entities 无法识别该方法?
- javascript - 调用特定函数后执行函数(重复此操作)
- ubuntu - 远程桌面和本地桌面只有一个桌面在Linux?
- php - laravel 无法发送用户验证邮件
- android - 使用 Fragment 时未找到处理 Intent 的活动 - android.intent.action.OPEN_DOCUMENT
- python - 给出月份中星期几的程序