前言
上篇講到Retrofit2+Okhttp3添加統一請求頭
,這篇是添加統一請求體
,原理是相通的,把參數以請求體
的方式添加到攔截器
中,然後在配置給okhttp
。
代碼實現
- 創建攔截器,並添加參數
public class HeaderInterceptor implements Interceptor {
@NonNull
@Override
public Response intercept(Chain chain) throws IOException {
Request original = chain.request();
//添加請求體參數
HttpUrl url = original.url().newBuilder()
.addQueryParameter("name", "value")
.addQueryParameter("自定義key", "自定義value")
.build();
//重新配置請求並返回
Request request = original.newBuilder()
.method(original.method(), original.body())
.url(url)
.build();
return chain.proceed(request);
}
}
- 配置攔截器給OkHttp
OkHttpClient okHttpClient = new OkHttpClient.Builder()
...
.addInterceptor(new HeaderInterceptor())
...
.connectTimeout(20, TimeUnit.SECONDS)
.build();