在 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);