同じbaseUrlを持つサービスURLがあります。いくつかのURLでは、よく使われるパラメータがいくつかあります。たとえば、apiVersion
またはlocale
です。しかし、それらはすべてのURLにある必要はないので、私はそれらをbaseUrlに追加することはできません。レトロフィット2の共通パスパラメータをokhttpに置き換えます。
.../api/{apiVersion}/{locale}/event/{eventId}
.../api/{apiVersion}/{locale}/venues
.../api/{apiVersion}/configuration
私はこれらのパラメータをレトロフィットインターフェイスに追加したくありません。改造1では、私はインターセプタを作成し、RequestFacade.addPathParam(..., ...)
を使用して、これらの共通パスパラメータをすべてのURLに入力しました。
改造2では、okhttpでこれを行う適切な方法が見つからないようです。私がこれを可能にする唯一の方法は、今度はをChain.request().httpUrl();
からokhttp Interceptor
で取得し、それを自分で操作することですが、これが最善の方法であるかどうかはわかりません。
okhttp Interceptor
で誰かがパスパラメータを置き換えるより良い方法を見つけましたか?
私はretrofit:2.0.0-beta2とokhttp:2.7.2を使用しています。
この回答http://stackoverflow.com/a/31002094を見てください。 – mtotschnig
@mtotschnigそのスレッドで(OkHttp 3+&Retrofit 2+を使って)最新の回答はありません。 – Singed
@Singed私はRetrofit2とOkHttp 3で私の仕事にリンクしています。 – mtotschnig