使用Rx-Android和翻新版的嵌套网络通话

时间:2019-06-26 03:47:44

标签: android rx-java retrofit2 rx-android

我正在使用Rx-android和Retrofit进行网络请求的应用程序,但是现在项目中有一个必须进行嵌套网络调用的需求。我试图用谷歌搜索它但没有找到任何好的文章。如果有人从事过这样的话题,请告诉我您的发现。

2 个答案:

答案 0 :(得分:1)

假设您正在使用rxjava适配器进行改造:

fun firstRequest(): Single<Response<String>>

fun secondRequest(idFromFirstRequest: String): Single<Response<ResponseBody>>

使用flatmap运算符链接网络呼叫:

firstRequest()
  // do more operators on the request, like transforming the object, or showing it first on the ui
  .flatMap { stringId -> secondRequest(stringId) }
  // you can flatMap here again to chain another network requests
  // .flatMap { thirdRequest() }
  // .flatMap { fourthRequest() }
  // and so on...

答案 1 :(得分:0)

关于API链接的文章很多,最简单的方法是使用Rx-Java方法

1)使用RxJava Zip运算符(用于并行请求)

2)使用RxJava flatMap()运算符(一个接一个地顺序请求)

请参阅这两个链接以获取更多详细示例

Synchronizing Network Calls With RxJava

Multiple api request using retrofit and rx java