更改截击超时时间我使用Android的新volley框架向我的服务器发出请求。但是它在得到响应之前会超时,尽管它确实会响应。我尝试添加以下代码:HttpConnectionParams.setConnectionTimeout(httpParams, 5000);
HttpConnectionParams.setSoTimeout(httpParams, timeoutMs);在……里面HttpClientStack将volley框架转换为不同的整数(50000),但它仍然在50秒前超时。有没有办法将超时更改为长值?
3 回答
三国纷争
TA贡献1804条经验 获得超7个赞
Request.setRetryPolicy()
DefaultRetryPolicy
JsonObjectRequest myRequest = new JsonObjectRequest(Method.GET, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.d(TAG, response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d(TAG, "Error: " + error.getMessage()); }});myRequest.setRetryPolicy(new DefaultRetryPolicy( MY_SOCKET_TIMEOUT_MS, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
梦里花落0921
TA贡献1772条经验 获得超6个赞
RetryPolicy
返乡政策
volley为您的请求提供了一种简单的实现Retry策略的方法。 volley将所有请求的默认套接字&ConnectionTImeout设置为5秒。
RetryPolicy
超时-在Millis中指定每次重试尝试中的套接字超时。 重试次数-重试次数。 后退乘法器-一个乘法器,用于确定每次重试的指数时间设置为套接字。
超时-3000毫秒,数值重试尝试-2,后退乘法器-2.0
重试尝试1:
时间=时间+(时间*后退乘数); 时间=3000+6000=9000毫秒 套接字超时=时间; 发出请求,套接字超时时间为9秒。
重试尝试2:
时间=时间+(时间*后退乘数); 时间=9000+18000=27000毫秒 套接字超时=时间; 以27秒的套接字超时发送请求
TimeoutError
//Set a retry policy in case of SocketTimeout & ConnectionTimeout Exceptions. //Volley does retry for you if you have specified the policy.jsonObjRequest.setRetryPolicy(new DefaultRetryPolicy(5000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
狐的传说
TA贡献1804条经验 获得超3个赞
RetryPolicy
public class BaseRequest<T> extends Request<T> { public BaseRequest(int method, String url, Response.ErrorListener listener) { super(method, url, listener); setRetryPolicy(getMyOwnDefaultRetryPolicy()); }}
- 3 回答
- 0 关注
- 403 浏览
添加回答
举报
0/150
提交
取消