当我处于慢速连接并发出POST请求时,Volley会多次重试我的请求,然后它们最终都会点击errorListener
。有时,这些重试实际上成功发布了数据。
用户将假设请求失败,但事实上,如果他们刷新了数据,他们会看到数据被POST两次到服务器(或者在一堆中成功重试)。
我想给Volley一个非常愚蠢的重试政策:
我希望它尝试15秒的请求,如果请求在15秒内没有到达服务器,并返回响应以触发errorListener
。我根本不想让它重试。
唯一的问题是如果Volley尝试,请求会在20~25秒内到达服务器,但到那时它会触发errorListener
并且数据仍然被POST。
HTTP是否遵循时间限制,之后100%的数据不会被发布,因为请求花了太长时间?也许40秒?如果是这样,那么我可以让请求持续40秒。
总之:
没有重试并确保100%,如果第一次尝试发布数据,请转到successListener
,如果没有发布(请求因服务器耗时过长或错误响应而死亡){{ 1}}。
我正在考虑使用defaultRetryPolicy做一些事情......比如errorListener
,虽然我认为最后一个参数并不重要,因为没有重试的退避点是什么。
我如何实现我要求的两个段落?