RxJava,在每次api调用之前进行网络检查的最佳方式

时间:2017-10-11 11:14:06

标签: android rx-java2

我使用RxJava进行网络呼叫,在每次请求之前,我需要检查网络。 目前,对于每个请求,我都是这样做的。

lubridate

这是推荐的方式还是有比这更好的方法?在此先感谢!!

1 个答案:

答案 0 :(得分:0)

通常您之前不检查网络。最好尝试发送呼叫并在请求失败时捕获错误。

在查询网络的存储库中,您可以为连接预先验证,并在网络连接失败时抛出异常。

这意味着:

networkCall()
  .subscribe( 
    success -> { ... }, 
    error -> { doSomethingWhenErrorHappened() }
   );

private Flowable<String> netWorkCall() {
     return networkAvailable() ? Flowable.just(...) : Flowable.error(...);          
}

这就是它的方式。

您应该考虑使用SingleMaybe,因为网络请求通常只返回数据onec或错误。 Flowable旨在使用流。