【发布时间】:2019-10-05 14:09:00
【问题描述】:
我需要调用两个 API A1 和 A2,但不能并行。仅当 A1 在其 JSON 响应中返回某个标志值时,才会调用 A2。
我知道如何使用 Httpclient 在 java 中进行 http 调用。一种方法是编写一个代码进行第一次调用并解析其响应,然后再次使用相同的代码进行另一次调用。他们是否有任何其他智能方式可以为我们自动执行此过程,我将同时传递请求和条件第二个需要像在 Rxjava 中一样调用
以下是 Rxjava 代码 sn-p(参考:(RxJava Combine Sequence Of Requests))
api1.items(queryParam)
.flatMap(itemList -> Observable.fromIterable(itemList)))
.flatMap(item -> api2.extendedInfo(item.id()))
.subscribe(...)
我如何在 Java 中实现这一点?是否有任何 Java 功能已经存在并允许我进行多次顺序调用?
我尝试搜索现有的解决方案,但它们不在 Java 中。
【问题讨论】:
-
"如果任何 java 类已经存在让我们进行顺序调用?" - 你的意思是......像
HTTPClient? -
是什么意思“。如果任何java类已经存在让我们进行顺序调用?”
-
你能不能简单地有一段Java代码1)发出对A1的调用并接收响应; 2) 解析响应并检查适当的标志值; 3) 根据标志值,调用 A2 还是不调用?
-
为了更清楚,我已经编辑了这个问题。请看一下。谢谢!
标签: java rest synchronous sequential