要处理Android Volley超时,您需要使用
RetryPolicy
。
RetryPolicy
是一个接口,您需要实现如何在超时发生时重试特定请求的逻辑。
它处理这三个参数:
- Timeout - 每次重试尝试的毫秒数Socket超时。
- Number Of Retries - 重试尝试的次数。
- Back Off Multiplier - 用于确定每次重试尝试时设置到套接字的指数时间的乘数。
例如,如果使用以下值创建
RetryPolicy
:
Timeout-3000ms、Num-of-Retry-Attempts-2、Back-Off-Multiplier-2.0
重试尝试1:
- 时间=时间+(时间×Back Off Multiplier);
- 时间=3000+6000 = 9000ms;
- 套接字超时=time;
- 发送具有9秒套接字超时的请求;
重试尝试2:
- 时间=时间+(时间×Back Off Multiplier);
- 时间=9000+18000 = 27000ms;
- 套接字超时=time;
- 发送具有27秒套接字超时的请求;
因此,在第二次重试尝试结束时,如果仍然发生套接字超时,Volley将在UI错误响应处理程序中抛出
TimeoutError
。
jsonObjRequest.setRetryPolicy(new DefaultRetryPolicy(5000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
HttpClient
类的使用相关。 - Michael Banzon