okhttp - OKHttp3:如果一个 IP 地址无法访问,如何重试另一个 IP 地址
问题描述
OkHttp3 是否支持以下情况:
- xxxx myapp.com
- yyyy myapp.com
我们有一个主机名的两个 IP,看起来 OkHttpClient 总是重试第一个 IP 地址,而不是尝试另一个可用的 IP 地址。
retryOnConnectionFailure(true) 支持这个吗?从文档中,默认情况下它应该支持这个?
将此客户端配置为在遇到连接问题时重试或不重试。默认情况下,此客户端会静默地从以下问题中恢复:
无法访问的 IP 地址。如果 URL 的主机有多个 IP 地址,则无法访问任何单个 IP 地址不会导致整个请求失败。这可以提高多宿主服务的可用性。
陈旧的池连接。ConnectionPool 重用套接字以减少请求延迟,但这些连接有时会超时。
无法访问的代理服务器。ProxySelector 可用于按顺序尝试多个代理服务器,最终退回到直接连接。
将此设置为 false 以避免在这样做具有破坏性时重试请求。在这种情况下,调用应用程序应自行恢复连接故障。
解决方案
OkHttp 将依次尝试两者。
推荐阅读
- python - 在模型类上循环训练模型并按模型类更改数据框名称
- react-native - npm install -g react-native-cli - 显示错误
- java - 如何避免编写许多非常相似的 setter 方法?
- python - 带有 scipy.interpolate.ndgriddata 的网格数据中的条纹
- android - 已发送消息出现在日历中
- javascript - WordPress - 多个指向同一 URL 的菜单链接处于活动状态
- swift - 未调用 CollectionView 函数“didSelectItemAt”
- c++ - UI 正在打印中文符号而不是有效文本
- flutter - 如何在 GridView (Flutter) 中进行分页
- image - Go 生成的动画 GIF 在 Windows 中不起作用