我在慢速网络上对Volley POST请求有问题。有时,我的POST请求执行两次或多次,导致1个请求进行多次(2次或多次)发布。
我尝试了几种解决方案,但没有用,
尝试1:
request.retryPolicy = DefaultRetryPolicy(30000, 0, 1f)
尝试2:
request.retryPolicy = DefaultRetryPolicy(0, -1, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)
尝试3:增加setRetryPolicy时间。
request.setRetryPolicy(new DefaultRetryPolicy(
30000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
尝试4:将RetryPolicy设置为0重试,并确保超时大于服务器超时。
setRetryPolicy(new DefaultRetryPolicy("bigger than server timeout",
0,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
尝试5:更改RetryPolicy。我将超时值设置为50000ms
request.setRetryPolicy(
new DefaultRetryPolicy(
500000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT
)
);
完整源代码:https://androidkeynotes.blogspot.com/2020/02/volley.html
如何避免使用排球库重复POST?
Volly具有在定义时间内未检索到响应的情况下调用API 3时间的机制。我们可以更改持续时间,以便在连接速度较慢时得到响应。