1. 秦子帅的博客首页
  2. Android

Okhttp3源码解析(6)-拦截器BridgeInterceptor

前言

回顾:
Okhttp的基本用法
Okhttp3源码解析(1)-OkHttpClient分析
Okhttp3源码解析(2)-Request分析
Okhttp3源码解析(3)-Call分析(整体流程)
Okhttp3源码解析(4)-拦截器与设计模式
Okhttp3源码解析(5)-拦截器RetryAndFollowUpInterceptor

Okhttp3源码解析(6)-拦截器BridgeInterceptor

今天讲一下BridgeInterceptor,我们先看一下源码对此类的解释:

意思就是从应用程序代码到网络代码的桥梁

  • 它从用户请求构建成网络请求
  • 然后进行网络请求
  • 将返回的响应数据转用户可用的response

下面贴出BridgeInterceptor 代码:

BridgeInterceptor初始化方法中也实例了cookieJarcookieJar代码如下:

发现cookieJar就是个接口,里面有两个方法:

  • saveFromResponse 自定义去存储cookie
  • loadForRequest 获取指定URL的cookie

我们在请求时需要配置一些东西,例如header等等,例如下图:

Okhttp3源码解析(6)-拦截器BridgeInterceptor

这就很好理解了吧?我们继续看BridgeInterceptor源码:
所以BridgeInterceptor 第一步就是给rquest设置header等配置,这块主要强调的是:

我们可以调用loadForRequest获取我们自定义的cookie ,设置到header中。
设置之后,进行网络请求:

很熟悉了,这里就不讲了。
最后就是将返回的networkResponse 转用户可用的response ,这里需要注意的是:
1.接收header信息,存储cookie

gzip解压
如果服务器返回的networkResponse 是压缩过的,需要GzipSource解压,读取response

这节就说到这,希望对大家有所帮助…..

Okhttp3源码解析(6)-拦截器BridgeInterceptor

大家可以关注我的微信公众号:「秦子帅」一个有质量、有态度的公众号!

Okhttp3源码解析(6)-拦截器BridgeInterceptor
公众号

原文始发于:Okhttp3源码解析(6)-拦截器BridgeInterceptor

发布者:秦子帅,转转请注明出处:http://qinzishuai.cn/index.php/2019/08/21/dcf40f8aad/

联系我们

912241847

在线咨询:点击这里给我发消息

邮件:qzs531156@163.com

QR code