java - Retrofit2 + RxJava2 全局处理错误

标签 java android retrofit2 rx-java2

如何使用 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/

相关文章:

java - 如何使 GAE 应用程序可永久禁止下载

java - 如何从不扩展 Activity 的类创建 TimePicker,Android?

android - 谷歌图书 API

android - Android WebView 中的 WebSocket

android - 协程 : run a Deferred on a specific CoroutineContext

java - RESTful Web 服务无法正确处理请求方法

java - Android Spinner 更改 setContentView

java - 从 Java (JVM) 生态系统开始

android - 使用Retrofit2和recyclerview进行嵌套JSON,响应不兼容

安卓改造2 |从 JSON 响应中获取列表数据