OkHttp源码解析(四)——失败重连

本文深入探讨了OkHttp如何处理失败请求并进行重连操作。通过分析`RealCall#getResponse`和`HttpEngine#recover`方法,揭示了重连过程中释放资源、创建新HttpEngine对象的细节,简化了二次包装流程,帮助理解OkHttp的内部机制。
摘要由CSDN通过智能技术生成

1.前言

OKHttp内部是做了失败从连的操作的,那么我就来简单看下失败重连的相关逻辑。

2.RealCall#getResponse 说起

因为是失败从连,所以我们要看cacth相关部分的代码,代码如下:

  HttpEngine retryEngine = engine.recover(e, false, null);
        if (retryEngine != null) {
          releaseConnection = false;
          engine = retryEngine;
          continue;
        }

上面的关键之处在于engine.recover,这个会返回一个HttpEngine对象,并继续执行while循环里的发送请求,读取相应的过程。

3.HttpEngine#recover

在这个方法中,会释放失败的那个HttpEngine所占用的一些资源,并重新new HttpEngine对象。当然,这里的这个对象和我们原来的那个是有区别的,我们看下对比。
原来


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值