0

这是我的代码:

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

“链接创建帐户”是一个链接,它适用于邮递员(仅创建 1 个帐户)。

但有时,我在 android 中使用此代码,它创建了具有相同详细信息的 2,3 帐户。

我不知道会发生什么!任何帮助。感谢!

4

2 回答 2

3

Volley 使用 RetryPolicy 所以在下面更新你的代码

request.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 1 , DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
queue.add(request);
于 2015-12-21T07:42:13.790 回答
2

同意BNK,我遇到了同样的问题。原因是对于一个请求,服务器端花费的时间超过了客户端可以等待的时间。例如,您的客户端将等待 1 分钟然后重试,但服务器需要 2 分钟才能完成请求,因此您的客户端将重试并且服务器中会有两个结果。

并且有两种方法可以解决这个问题,一种是让客户端等待足够长的时间让服务器完成请求,或者加速你的服务器端;另一个就像BNK说的,make suer Volley不会重试。

于 2015-12-21T07:28:38.843 回答