我在Android應用程序中使用OkHttp客戶端進行Retrofit 2(2.0.0-beta3),至此一切進展順利。但是目前我正面臨着OkHttp攔截器的問題。我與之通信的服務器是在請求體中使用訪問令牌,所以當我需要添加auth令牌時,我攔截添加auth令牌的請求或Authenticator的身份驗證方法時,需要修改此請求的主體。但它看起來像我只能在標題中添加數據,而不是在正在進行的請求中添加數據。到目前爲止,我寫的代碼如下: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;
}
});
任何人都可以點我朝着正確的方向如何修改請求身體補充我的訪問令牌(首次或令牌刷新後更新)?任何指向正確的方向將不勝感激。
這將是一個好主意,關閉緩存在'bodyToString()'返回 –
@ 3K那不是需要之前,緩衝犯規分配任何可以在構造函數中被關閉。 https://github.com/square/okio/blob/master/okio/src/main/java/okio/Buffer.java#L59 – Fabian