Okhttp4.9 RetryAndFollowUpInterceptor伪代码

1.有一个while(true) 第一次进入while时, 先找查一个可用的连接

2.response = realChain.proceed(request)  执行请求后(这里经过其他的Intercept),判断

  1. 有RouteException/IOException 则recover 是判断是否还再次请求
  2. 没有错误,则followUpRequest判断 response.code 是否是一些错误码
  3. followUpRequest返回null 则return出while 完成请求,不为空,则判断 request.body 不为空且只请求一次,则还是return
  4. 还是要重试,关闭当前response的 请求流, 记录重试次数   
    ++followUpCount
    MAX_FOLLOW_UPS = 20 最大重试次数 
  5. while到下一次请求

posted on 2021-04-21 23:39  caosiqiao  阅读(56)  评论(0编辑  收藏  举报

导航