RetryAndFollowUpInterceptor 拦截器为 OkHttp 拦截器集合中的第一个拦截器,它的作用顾名思义为网络请求失败时发起重试、重定向,下面看一下 intercept 方法的具体代码:
|
|
大致流程为: 在一个循环里发起请求,如果请求失败则判断是否能发起重试,如果允许重试则继续发起请求。请求失败后判断是否重试的逻辑在 recover 方法里:
|
|
如果成功返回了 response 则根据 responseCode 判断是否需要发起重定向请求(当 响应code的值为 3xx 重定向、401、407、408 时),具体要看一下 followUpRequest 方法:
|
|