Volley 请求重试策略不考虑超时
Volley request retry policy doesn't consider timeout
我在 DefaultRetryPolicy 中将 1500 设置为 initialTimeoutMs,如下所示,但它不考虑超时:
request.setRetryPolicy(new DefaultRetryPolicy(1500
, DefaultRetryPolicy.DEFAULT_MAX_RETRIES
, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
我断开了我设备上的 WiFi 以测试它是否超时,我在 Logcat:
中看到了这些时间
2019-12-16 14:28:15.892 I/MyClass: request sent
2019-12-16 14:28:35.930 I/MyClass: request caught onError
我预计会在 1.5 秒后捕获 onResponse 或 onError,但花了 20 多秒!!!
根据您的配置。您的超时时间应为 3 秒。
参考http://prasadthangavel.blogspot.com/2013/12/why-volley-android-has-provided-two.html
我认为你应该将 DEFAULT_BACKOFF_MULT 设为零。
使用 5 秒,因为 15 秒更适合超时..
int TIME_OUT = 500; //use 5 sec it will work fine with it..
request.setRetryPolicy(new DefaultRetryPolicy(
TIME_OUT,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
我在 DefaultRetryPolicy 中将 1500 设置为 initialTimeoutMs,如下所示,但它不考虑超时:
request.setRetryPolicy(new DefaultRetryPolicy(1500
, DefaultRetryPolicy.DEFAULT_MAX_RETRIES
, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
我断开了我设备上的 WiFi 以测试它是否超时,我在 Logcat:
中看到了这些时间2019-12-16 14:28:15.892 I/MyClass: request sent
2019-12-16 14:28:35.930 I/MyClass: request caught onError
我预计会在 1.5 秒后捕获 onResponse 或 onError,但花了 20 多秒!!!
根据您的配置。您的超时时间应为 3 秒。 参考http://prasadthangavel.blogspot.com/2013/12/why-volley-android-has-provided-two.html
我认为你应该将 DEFAULT_BACKOFF_MULT 设为零。
使用 5 秒,因为 15 秒更适合超时..
int TIME_OUT = 500; //use 5 sec it will work fine with it..
request.setRetryPolicy(new DefaultRetryPolicy(
TIME_OUT,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));