栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Android(Java)HttpURLConnection对“读取”超时进行静默重试

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android(Java)HttpURLConnection对“读取”超时进行静默重试

这个错误的决定是由开发人员在2006年做出的。这是一个很好的引用,它从Java的角度解释了整个情况:

“您可能现在已经猜到它是一个错误(http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6382788)。当然,不是重试机制,只是废话。该错误在于发生在POST(默认情况下不是HTTP
RFC幂等)。但是不用担心,Bill很久以前修复了该错误。Bill通过引入切换来修复了该错误。Bill了解了向后兼容性。缺省情况下,将切换开关保持在“开”状态,因为这样会使它向后兼容bug。Bill笑了。他已经可以看到全球范围内惊讶的开发人员遇到的麻烦。请不要像Bill那样?”
资源

那么建议的解决方案是:

System.setProperty("sun.net.http.retryPost", "false")

但是我们不能在android上做到这一点!剩下的唯一解决方案是:

httpURLConnection.setChunkedStreamingMode(0);

这似乎是可行的,但从请求时间的角度来看并不是很有效。

编辑:我不能使用此实现,所以我寻找了一个替代库。我发现自Android
4.4起,HttpUrlConnection的实现使用OkHttp。由于OkHttp是开源的,因此我可以搜索它们是否也有静默重试问题。是的,他们对此有疑问,并于2016年4月进行了修复。CommonsWare(一位真正的android专家)解释说,每个制造商都可以决定他们可以使用的实现。因此,必须有很多设备可以对POST请求进行静默重试,作为开发人员,我们只能尝试一些工作环境。

我的解决方案是更改库

编辑2:为您提供最终答案:
现在,您可以使用OkHttp作为最少代码的Volley的传输层。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/373080.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号