【问题标题】:How to make dns lookup faster with okhttp?如何使用 okhttp 使 dns 查找更快?
【发布时间】:2018-09-09 11:41:47
【问题描述】:

我使用了新的OkHttpEventListener 来调试为什么我的请求需要这么长时间。结果如下:

0,000 callStart
0,027 dnsStart
5,189 dnsEnd
5,359 secureConnectStart
5,907 secureConnectEnd
5,910 connectEnd
5,921 connectionAcquired
5,925 requestHeadersStart
5,930 requestHeadersEnd
5,938 responseHeadersStart
6,181 responseHeadersEnd
6,189 responseBodyEnd
6,233 connectionReleased

如您所见,dnsStartdnsEnd 的时间大约需要 5 秒。我怎样才能减少这个值?有什么方法可以预热 dns 查找或缓存或其他方法吗?

【问题讨论】:

  • 您系统上的 DNS 查找似乎很慢(与 okhttp 无关)。您在其他情况下是否遇到过同样的延迟?
  • 我在其他3g网络的设备上检查过,dns查找大约需要2秒,但我觉得也太多了@Henry
  • 我也有同样的问题,dns 查找有时需要 5 秒。找到原因了吗?
  • 例如你的sim卡有很远地区的dns服务器@AndreyRankov
  • 就我而言,有时甚至在快速 wi-fi 网络上也会发生这种情况。如何解决这种延迟?

标签: android okhttp3 okhttp


【解决方案1】:

您可以尝试编写自定义 dns 解析器,请参阅https://square.github.io/okhttp/4.x/okhttp/okhttp3/-ok-http-client/-builder/dns/

但我建议仅在您检测到 dns 查找时间较长时才这样做。

【讨论】:

  • 一个例子会增加很多价值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
  • 2017-06-17
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
  • 2016-06-17
相关资源
最近更新 更多