私はretrofit2をRxで使用しています。私は2つのAPIコールを持っています。最初の呼び出しがコード400の空の応答を返す場合は、2番目のAPI呼び出しを作成する必要があります。私は表示されたカスタムエラー処理を実装しましたhere。ここに私の解決策は次のとおりです。Androidのretrofit2とrxの順次リクエスト
getResponse1(token)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new ObserverErrorImpl<Response1, BaseError>(BaseError.class) {
@Override
public void onNext(Response1 response) {
view.onSuccess(response);
}
@Override
public void onClientError(BaseError response) {
getResponse2(token)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new ObserverErrorImpl<Response2, BaseError>(BaseError.class) {
@Override
public void onNext(Response2 response) {
view.onSuccess(response);
view.hideProgress();
}
@Override
public void onError(Throwable throwable) {
super.onError(throwable);
view.hideProgress();
}
});
}
@Override
public void onError(Throwable throwable) {
super.onError(throwable);
view.hideProgress();
}
});
は方法onClientError
内部に入るこのコードを単純化することが可能ですか?それを好きなのは良い解決策ですか?