OkHttp 中addInterceptor和addNetworkInterceptor的区别

1、addInterceptor

  • 有无网络都会被调用到。
  • 拦截器只会被调用一次,调用chain.proceed()得到的是重定向之后最终的响应信息,
    不会通过chain.connection() 获得中间过程的响应信息。
  • 允许短路,并且允许不去调用chain.proceed()请求服务器数据,可通过缓存来返回数据。

2、addNetworkInterceptor

  • 无网络时不会被调用。
  • 可以显示更多的信息,比如OkHttp为了减少数据的传输时间以及传输流量而自动添加的
    请求头Accept-Encoding: gzip,从而希望服务器能返回经过压缩过的响应数据。
  • chain.connection()返回不为空的Connection对象,可以查询到客户端所连接的服务器的IP地址以及TLS配置信息。

参考自//www.greatytc.com/p/1752753db538

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容