如何使用retrofit2和rxjava2检查网络连接并且服务器是否可用于所有请求?
我可以通过向我的服务器URL发送请求来检查“服务器可用”,但是我可以通过向google.com或其他“好”网站发送请求来检查网络连接吗?
我有更多api请求,例如其中一个:
compositeDisposable.add(RetrofitClient
.getApi()
.somemethod()
.map(response -> {
Data data = null;
if (response.isSuccessful()) {
data = response.body();
} else {
data = new Data();
data.setResponseCode(response.code())
}
return data;
})
.onErrorReturnItem(new Data())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::checkResponse());
如何检查我写的所有请求的这些错误,以免重复代码?谢谢 .
2 回答
您可以使用
lift
方法,它允许您为您的案例实现自己的运算符ApiErrorOperator并使用如下:
在应用程序类的
onCreate
中调用RxJavaPlugins.setErrorHandler
. 例如: