如何使用 Retrofit2 和 rxjava2 检查网络连接以及服务器是否可用于所有请求?
我可以通过向我的服务器网址发送请求来检查“服务器可用”,但我可以通过向 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());
如何检查我为所有请求编写的这些错误,以免重复代码?谢谢。
最佳答案
在应用程序类的onCreate
中调用RxJavaPlugins.setErrorHandler
。例如:
RxJavaPlugins.setErrorHandler(e -> {
if ((e instanceof IOException) || (e instanceof SocketException)) {
// handle exception
return;
}
});
关于java - Retrofit2 + RxJava2 全局处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52905803/