我正在使用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不满意。所以请帮忙。如果需要更多信息,请询问,我将其发布。

最佳答案

HttpException与网络故障无关。 IOException是您想要的。

关于android - Retrofit2和RxJava2:如何检测网络错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44919094/

10-10 09:55