在 Android 中使用 RequestQueue 时出错?
Error when use RequestQueue in Android?
这是我的代码:
RequestQueue queue = Volley.newRequestQueue(this);
JSONObject params = new JSONObject();
try {
params.put("email", email);
params.put("pass", pass);
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, "Link Create Account", params, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
queue.add(request);
"Link Create Account" 是一个 link,它与邮递员一起工作正常(仅创建 1 个帐户)。
但有时,我在 android 中使用此代码,它会创建具有相同详细信息的 2,3 帐户。
我不知道发生了什么!任何帮助。谢谢!
同意BNK,我也遇到过同样的问题。原因是对于一个请求,服务器端花费的时间比客户端可以等待的时间多。例如你的客户端会等待1分钟然后重试,但是服务器需要2分钟才能完成请求,所以你的客户端会重试并且服务器会有两个结果。
解决问题的方法有两种,一种是让客户端等待足够长的时间让服务器完成请求,或者加快你的服务器端速度;另一个像BNK说的,make suer Volley不会重试。
Volley 使用 RetryPolicy,因此请在下方更新您的代码
request.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 1 , DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
queue.add(request);
这是我的代码:
RequestQueue queue = Volley.newRequestQueue(this);
JSONObject params = new JSONObject();
try {
params.put("email", email);
params.put("pass", pass);
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, "Link Create Account", params, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
queue.add(request);
"Link Create Account" 是一个 link,它与邮递员一起工作正常(仅创建 1 个帐户)。
但有时,我在 android 中使用此代码,它会创建具有相同详细信息的 2,3 帐户。
我不知道发生了什么!任何帮助。谢谢!
同意BNK,我也遇到过同样的问题。原因是对于一个请求,服务器端花费的时间比客户端可以等待的时间多。例如你的客户端会等待1分钟然后重试,但是服务器需要2分钟才能完成请求,所以你的客户端会重试并且服务器会有两个结果。
解决问题的方法有两种,一种是让客户端等待足够长的时间让服务器完成请求,或者加快你的服务器端速度;另一个像BNK说的,make suer Volley不会重试。
Volley 使用 RetryPolicy,因此请在下方更新您的代码
request.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 1 , DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
queue.add(request);