2017-01-19 1 views
0

APIを使用して自分のアプリを使用しています。before request callsのようなものを処理したいと考えています。つまり、APIが呼び出される前に、何かを確認して何かすることができます。その後、APIは呼び出しを続行します。リクエストの前にハンドルを呼び出すRetrofit 2

たとえば、settingsloginの2つのAPIがあります。

ユーザーがログインしたい場合は、api loginを呼び出す必要があります。しかし、私はapi settingsが前に呼び出されなかったかどうか確認したいと思っています。settingsを最初に呼び出し、loginに電話します。

以下のドラフトのような通常のチェックを使用すると、重複したコードをチェックしてあまりにも多く書く必要があります。

if (settingDoesntCalled()){ 
    callSetting(){ 
    onResponse(){ 
     callLogin(); 
    } 
    } 
}else{ 
    callLogin(); 
} 

そして、私はいつもsettingsのAPIを最初にチェックしたいAPIをたくさん持っています。

任意のアイデアが役立ちます。ありがとう。

答えて

1

RetrofitにはInterceptorsという概念があります。元のネットワークコールと同じスレッドで実行されるため、これがログインネットワークコールであるかどうかを確認して確認し、前に設定ネットワークコールを実行できます。

+0

Uは私が 'public Response intercept(チェーンチェーン)throw IOException'の中でリクエストを作成できることを意味していますか? – TruongHieu

+1

正確です。別の例は、[ここ](http://stackoverflow.com/questions/28226765/make-a-synchronous-retrofit-call-from-inside-an-okhttp-interceptor)です。 –

+0

ご協力いただきありがとうございます。私はそれを試し、後でフィードバックします。 – TruongHieu

関連する問題