addInterceptor
和 addNetworkInterceptor
都是 OkHttp 中用于添加拦截器的方法,但它们有一些关键区别:addInterceptor
addInterceptor
都会被调用。chain.proceed()
,直接返回自定义的响应。If-None-Match
。addNetworkInterceptor
chain.connection()
获取连接的详细信息,如服务器的 IP 地址和 TLS 配置信息。// 应用层拦截器
val appInterceptor = Interceptor { chain ->
val request = chain.request().newBuilder()
.addHeader("User-Agent", "Your-App-Name")
.build()
chain.proceed(request)
}
// 网络层拦截器
val networkInterceptor = Interceptor { chain ->
val request = chain.request()
val response = chain.proceed(request)
// 处理网络层的响应
response
}
val okHttpClient = OkHttpClient.Builder()
.addInterceptor(appInterceptor)
.addNetworkInterceptor(networkInterceptor)
.build()