さまざまなシナリオに基づいて200,202,4xxを返すAPIがあります。私は202を取得するとき、私は200または4xxを得るまで私は同じAPIを作ることになっています。私はdoOnErrorNext、onError、onNextを使ってみました。私は、問題Retrofit2 + RxJava + Jackson for 202を使用して再試行ステータスコード
Observable<MyPOJO> makeAPI();
Observable<MyPOJO> makeAPIImpl(){
makeAPI().doOnErrorNext(/*how to I access the error code here*/);
makeAPI().doOnNext(/*given that 202 is a success code, I expected it to come here, but it goes to Error because of JSON Mapping*/);
}
doOnErrorNextをクラックすることができませんでした - >私は再びAPI呼び出しを作ることができたが、その後、それは私が複数の回答をチェックした
私はいけない、すべてのエラー・シナリオのために起こりますこれに関しては誰もがこの組み合わせを具体的に解決しており、私のユースケースに他の答えを組み込むことはできません。
inner class ExpiredSessionInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val request = chain.request()
val response = chain.proceed(request)
if (response.code() == 202) {
val newRequest = request.newBuilder().build()
return chain.proceed(newRequest)
} else {
return response;
}
}
}
:
よく、202は成功コードだから、改造はそれを解析しようとします。あなたのケースでは、おそらく例外で失敗しました。応答が間違っている場合、サーバーは202を返しますか? – yosriz