OKHttp4(二)——拦截器(五)——CallServerInterceptor

文章目录

前言

该拦截器的作用就是使用上一个ConnectInterceptor开辟的I/O窗口,通过这个窗口向Socket管道内读取/写入数据。然后将服务器的响应构建为一个Response返回,最后根据Connection头信息判断需不需要关闭连接

过程

  1. 如果该请求带有Body,则会检测请求中有没有Expect:100-continue头信息,如果有则仅仅发送头信息,待服务器返回响应确认可以发送body后,才会接着发送body
  2. 判断需不需要分块发送
  3. 读取响应,构建Response
  4. 判断需不需要关闭连接

问题

  1. Socket管道什么打开的,什么时候关闭的?

Socket管道在新建连接时(ConnectionInterceptor)打开,在清理连接池(RealConnectionPool)时,如果Socket超过限制的时长,就会被关闭。会有一个专门的线程(线程池中获取)负责清理工作。当连接池中的第一个连接被创建时,这个线程就被创建了。注意,并不是在CallServerInterceptor中关闭的,CallServerInterceptor只是标示了当前的连接不能再开辟I/O窗口,等待被清理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值