Retrofit2和RxJava2:如何检测网络错误

时间:2017-07-05 07:01:46

标签: android retrofit2 rx-java2

我使用Retofit2和RxJava2从API获取数据。我使用以下代码

Observable<Recipe> recipeObservable = getDataManager().getRecipes(String.valueOf(page));

        recipeObservable.subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<Recipe>() {
                    @Override
                    public void onSubscribe(@NonNull Disposable d) {

                    }

                    @Override
                    public void onNext(@NonNull Recipe recipe) {

                        getMvpView().updateRecipeList(recipe.getResults());
                        ++page;
                        //getMvpView().hideLoading();
                    }

                    @Override
                    public void onError(@NonNull Throwable e) {

                        if (e instanceof HttpException)
                            Timber.d("Network Error");
                    }

                    @Override
                    public void onComplete() {

                    }
                });

但问题是Timber.d("Network Error");永远不会被执行。我查看了各种网站,但无法解决问题。我使用Retrofit2但不熟悉RxJava2。所以请帮忙。如果需要更多信息,请询问,我会发布。

1 个答案:

答案 0 :(得分:2)

HttpException与网络故障无关。您正在寻找IOException。