Retrofit配置headers無效的可能原因

操作一個Retrofit的步驟一般是這樣的

  • 創(chuàng)建一個網(wǎng)絡(luò)攔截器,添加一些通用的headers
Interceptor interceptor = new Interceptor() {
            @Override
            public Response intercept(Chain chain) throws IOException {
                Request original = chain.request();
                Request request = original.newBuilder()
                        .addHeader("xxx", "xxx")
                        .addHeader("xxx", "xxx")
                        .addHeader("Content-Type", "application/json")
                        .method(original.method(), original.body())
                        .build();
                return chain.proceed(request);
            }
        };
  • 創(chuàng)建一個打印請求日志的攔截器
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
httpLoggingInterceptor.setLevel(BuildConfig.DEBUG ? 
                HttpLoggingInterceptor.Level.BODY : HttpLoggingInterceptor.Level.NONE);
  • 在OKHttpClient中加入創(chuàng)建的攔截器
OkHttpClient okHttpClient= new OkHttpClient.Builder()
                .addInterceptor(interceptor) // 添加headers攔截器
                .addInterceptor(mHttpLoggingInterceptor)// 添加log攔截器
                .readTimeout(8000, TimeUnit.MILLISECONDS)
                .writeTimeout(8000, TimeUnit.MILLISECONDS)
                .build();

其實我們看上面的addInterceptor方法好像是并列的,至于哪個攔截器在前,哪個在后,應(yīng)該無所謂。但是事實是,如果吧mHttpLoggingInterceptor放前面,則后面的interceptor添加的heanders將不會生效。當(dāng)我們使用addInterceptor來添加網(wǎng)絡(luò)攔截器時,一定要把網(wǎng)絡(luò)攔截器放前面。

  • 使用addNetworkInterceptor
    當(dāng)我們使用網(wǎng)絡(luò)請求方面的攔截器時,直接使用addNetworkInterceptor方法來添加,而不要使用addInterceptor來添加。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Retrofit是squareup公司的開源力作,和同屬squareup公司開源的OkHttp,一個負(fù)責(zé)網(wǎng)絡(luò)調(diào)度,...
    藍(lán)灰_q閱讀 42,118評論 23 281
  • 什么是 Retrofit ? Retrofit是Square開發(fā)的一個Android和Java的REST客戶端庫。...
    帥氣的豬豬閱讀 1,607評論 0 0
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,000評論 2 59
  • 1、活動指示器 活動指示器表明進(jìn)程或任務(wù)正在進(jìn)行中 (1)當(dāng)任務(wù)加載和進(jìn)行時旋轉(zhuǎn),任務(wù)完成后自動消失(針對系統(tǒng)默認(rèn)...
    Ronie閱讀 3,012評論 0 29
  • 蟬收斂起一生的歌喉 蟋蟀鼓動雙手 一絲涼風(fēng) 驚動一顆熟睡地露珠 叮咚一聲 詩意般滑落 從一片沉淀過烈日的綠...
    星空物語_07f5閱讀 124評論 0 0

友情鏈接更多精彩內(nèi)容