第4章 重试与重定向拦截器:RetryAndFollowUpInterceptor 原理、自定义重试逻辑、最大重试次数控制

4.1 核心原理

RetryAndFollowUpInterceptor 是 OkHttp 内部拦截器链中的关键一环,位于 BridgeInterceptor 之后、ConnectInterceptor 之前。它的职责非常明确:当网络连接因 IOException 失败时自动执行重试,当服务器返回 3xx 状态码时自动跟踪重定向。该拦截器将所有重试和重定向操作合并到一个循环中,并统一计入同一个最大次数计数器。

特性触发条件默认行为自定义方式
连接重试IOException(DNS解析失败、连接超时、Socket异常等)自动重试(最多20次限制)关闭 retryOnConnectionFailure(false)
请求重定向响应状态码 3xx(301、302、307、308等)自动跟踪(最多20次限制)关闭 followRedirects(false)
SSL 重定向