You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin OkHttp Retrofit2添加全局Header报addHeader未引用错误如何解决

报错原因

OkHttpClient.Builder 类本身没有提供addHeader方法,该方法是Request.Builder的专属方法,因此直接在OkHttpClient构建器中调用会报未找到引用的错误。要实现全局为所有请求添加自定义Header的需求,需要通过自定义拦截器实现。

解决方法

在OkHttpClient中添加自定义拦截器,拦截所有发出去的请求,统一为请求添加自定义Header后再执行请求。如果需要日志拦截器能够打印出你添加的自定义Header,要将自定义Header拦截器的添加顺序放在日志拦截器之前。

完整修改后代码

package com.app.name.data

import com.app.name.BuildConfig
import com.app.name.data.source.remote.APPService
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.converter.scalars.ScalarsConverterFactory

object MicroApiClient {
    private val loggingInterceptor = HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)
    private val okHttpClient = OkHttpClient.Builder()
            // 自定义Header拦截器,放在日志拦截器之前可以让日志打印出添加的Header
            .addInterceptor { chain ->
                val originalRequest = chain.request()
                val requestWithHeader = originalRequest.newBuilder()
                    .addHeader("x-api-key", BuildConfig.AWS_MICROSERVICES_API_KEY)
                    // 如需添加更多Header,在此处继续调用addHeader即可
                    .build()
                chain.proceed(requestWithHeader)
            }
            .addInterceptor(loggingInterceptor)
            .build()
    val instance: APPService by lazy {
        val retrofit = Retrofit.Builder()
                .baseUrl(BuildConfig.AWS_MICROSERVICES_HOST)
                .addConverterFactory(GsonConverterFactory.create())
                .addConverterFactory(ScalarsConverterFactory.create())
                .client(okHttpClient)
                .build()

        retrofit.create(APPService::class.java)
    }
}

补充说明

  • 如果你需要覆盖请求中已存在的同名Header,将addHeader替换为header方法即可
  • 该方式添加的Header会自动应用到当前OkHttpClient实例发起的所有请求中

内容的提问来源于stack exchange,提问作者Funtriaco Prado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 21:27:02