Retrofit2 和 RxJava2:如何检测网络错误
Retrofit2 and RxJava2 : How to detect the network error
我正在使用 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
。所以请帮助。如果需要更多信息,请询问,我会 post 提供。
HttpException 与网络故障无关。 IOException 正是您要查找的内容。
我正在使用 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
。所以请帮助。如果需要更多信息,请询问,我会 post 提供。
HttpException 与网络故障无关。 IOException 正是您要查找的内容。