AndroidアプリケーションでOkHttpクライアントでRetrofit 2(2.0.0-beta3)を使用しています。しかし、現在、私はOkHttpインターセプターの問題に直面しています。私が通信しているサーバーは要求の本文にアクセストークンを取っているので、認証トークンを追加する要求を傍受するか、更新された認証トークンを追加する必要があるときにオーセンティケータの認証メソッドで認証を要求すると、 。しかし、私はヘッダーにのみデータを追加できますが、進行中の要求の本文には追加できないようです。次のように私がこれまでに書いたコードは次のとおりです。Retrofit2:OkHttpインターセプタのリクエストボディを変更する
client.interceptors().add(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (UserPreferences.ACCESS_TOKEN != null) {
// need to add this access token in request body as encoded form field instead of header
request = request.newBuilder()
.header("access_token", UserPreferences.ACCESS_TOKEN))
.method(request.method(), request.body())
.build();
}
Response response = chain.proceed(request);
return response;
}
});
誰もが私のアクセストークン(最初の時間やトークンリフレッシュ後に更新)を追加するリクエストボディを変更する方法として正しい方向に私を指すことができますか?正しい方向へのポインタは、評価されるでしょう。
それは() ' –
3K @ザッツは必要ありませんを返す前に、バッファは、コンストラクタ内で閉じることができる何かを割り当てるdoesntのbodyToString'でバッファを閉じるには良いでしょう。 https://github.com/square/okio/blob/master/okio/src/main/java/okio/Buffer.java#L59 – Fabian