Retrofit + RxJava (+RxAndroid) で以下のようなちょっと複雑なユースケースはどう書けばよいのかなと調べてみたら defer と onErrorResumeNext を使えばよいんじゃないか、という話 (ただしRetrofitは関係ない話になった)。 参考: retrofit with rxjava handling network exceptions globally ユースケース ユーザ情報を取得するAPIを叩く(認証が必要なAPI) 401が返ってきたら、アクセストークンを再度取得する処理を行う アクセストークンの再取得に成功した場合は、新しいアクセストークンを使って、もとのリクエスト(ユーザ情報の取得)をもう1回行う アクセストークンの再取得に失敗した場合は、ログイン画面に飛ばす 実装 private void getUser() { Observabl
![RxJava (+RxAndroid) で認証つきのリクエストのちょっと複雑なエラーハンドリングをする - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/a7c8e035f72aeb434a6cf7069e4deb83939a5397/height=288;version=1;width=512/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fqiita-fb-fe28c64039d925349e620ba55091e078.png)