Retrofit2+Okhttp3添加統一請求體

前言

上篇講到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();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章