1.有一个while(true) 第一次进入while时, 先找查一个可用的连接
2.response = realChain.proceed(request) 执行请求后(这里经过其他的Intercept),判断
- 有RouteException/IOException 则recover 是判断是否还再次请求
- 没有错误,则followUpRequest判断 response.code 是否是一些错误码
- followUpRequest返回null 则return出while 完成请求,不为空,则判断 request.body 不为空且只请求一次,则还是return
- 还是要重试,关闭当前response的 请求流, 记录重试次数
++followUpCount
MAX_FOLLOW_UPS = 20 最大重试次数
- while到下一次请求