Volley 的响应有什么问题?
What's wrong with response in Volley?
我是用Volley向后台发送请求,有时调试看到响应错误,还可以。我不知道为什么会这样。感谢您帮我解释这个案例。
我认为这是Volley中重试功能的问题,如果你没有为请求设置重试,等待响应时间过长,它会自动重试发送另一个请求。您可以像这样在 Volley 中设置请求策略
StringRequest sr = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>()
{
@Override
public void onResponse(String response)
{
//response OK
}
}, new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
//response Error
}
})
{
@Override
protected Map<String,String> getParams()
{
return getParams();
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError
{
return getHeaders();
}
};
sr.setRetryPolicy(new DefaultRetryPolicy(
(int) TimeUnit.SECONDS.toMillis(10),//time out in 10second
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,//DEFAULT_MAX_RETRIES = 1;
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
getRequestQueue().add(sr);
我是用Volley向后台发送请求,有时调试看到响应错误,还可以。我不知道为什么会这样。感谢您帮我解释这个案例。
我认为这是Volley中重试功能的问题,如果你没有为请求设置重试,等待响应时间过长,它会自动重试发送另一个请求。您可以像这样在 Volley 中设置请求策略
StringRequest sr = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>()
{
@Override
public void onResponse(String response)
{
//response OK
}
}, new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
//response Error
}
})
{
@Override
protected Map<String,String> getParams()
{
return getParams();
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError
{
return getHeaders();
}
};
sr.setRetryPolicy(new DefaultRetryPolicy(
(int) TimeUnit.SECONDS.toMillis(10),//time out in 10second
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,//DEFAULT_MAX_RETRIES = 1;
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
getRequestQueue().add(sr);