OkHttp原理解析之桥接拦截器

二、桥接拦截器

BridgeInterceptor,连接应用程序和服务器的桥梁,我们发出的请求将会经过它的处理才能发给服务器,比如设置请求内容长度,编码,gzip压缩,cookie等,获取响应后保存Cookie等操作。这个拦截器相对比较简单,功能总结起来就是:补全请求与响应后处理。

补全请求头:

请求头说明
Content-Type请求体类型,如:application/x-www-form-urlencodedmultipart/form-data
Content-Length/Transfer-Encoding请求体的解析方式
Host请求的主机站点
Connection: Keep-Alive保持长连接,如果不设置这个请求头,默认保持。即在有效期内保持tcp连接,连接复用。
Accept-Encoding: gzip接受响应使用gzip压缩,常见的有compress, gzip
Cookiecookie身份辨别
User-Agent请求的用户信息,如:操作系统、浏览器等

在补全了请求头后交给下一个拦截器处理,得到响应后,主要干两件事情:

1、保存cookie。读取Set-Cookie响应头并调用接口告知用户,在下次请求则会读取对应的数据设置进入请求头,默认的CookieJar无实现;

2、如果使用gzip返回的数据(即响应头Content-Encoding为gzip),则使用GzipSource包装便于解析。

总结

桥接拦截器的执行逻辑主要就是以下几点:

  • 对用户构建的Request进行添加或者删除相关头部信息,以转化成能够真正进行网络请求的Request
  • 将符合网络请求规范的Request交给下一个拦截器处理,并获取Response
  • 如果响应体经过了GZIP压缩,那就需要解压,再构建成用户可用的Response并返回
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值