在连接失败时okhttp静默重试问题

问题描述 投票:0回答:1

我们在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

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

android timeout okhttp3
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.