okhttp关于连接失败的静默重试的问题

时间:2019-04-18 12:15:33

标签: android timeout okhttp3

我们对okhttp重试请求有一些问题。根据我们的崩溃报告日志,我们大多数客户都收到了太多此类异常。

enter image description here enter image description here

他们抱怨的是数据已上传到服务器,但移动设备仍显示为未上传。我研究了一下,发现okHttp正在重试连接失败的请求,并猜测它与该主题有关。调试应用程序时无法创建案例。我尝试连接到10.10.10.1,它正在获取套接字超时,但是okhttp似乎不重试此请求。它仅在此行if (!streamAllocation.hasMoreRoutes()) return false; okhttp v3.12.1 )上返回。我在logcat或stetho中看不到任何重试日志。如何重现这种情况?在这种情况下,okHttp应该重试吗?在这种情况下,禁用重试会有所帮助吗?

根据本文https://medium.com/inloopx/okhttp-is-quietly-retrying-requests-is-your-api-ready-19489ef35ace

  

您将不会收到有关这些静默重试的通知。服务器可以   即使您只发出了一个请求,仍会收到多个请求。

1 个答案:

答案 0 :(得分:0)

我设法根据okhttp标准测试复制了此案。这是测试https://gist.github.com/androideveloper/b411d9e90cb8ad430148a906890d0c90。它静默重试2次。如果将日志拦截器安装为网络拦截器,则日志可用。