Android凌空发送数据两次

我在我的应用程序中使用Volleynetworking库。

问题是当networking连接速度慢时它不止一次地发送数据。

而我在Google这个问题之后,我所能find的关于这个问题的点如下:

connection.setChunkedStreamingMode(0); 

但是我不能编辑我的排球库Hurlkstack类。

它说:

这个类文件的jar子属于容器android私有库,它不允许修改源条目的源附件。

我该怎么做才能有人帮助我

我有下面的代码,我应该在哪里修改。

 private void makeJsonObjectRequest() { JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST, "http://example.com/***.php", obj, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { try { response.getString("success"); } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }); AppController.getInstance().addToRequestQueue(jsonObjReq); } 

Solutions Collecting From Web of "Android凌空发送数据两次"

无需使用connection.setChunkedStreamingMode(0); 避免凌空发送数据两次 bug。 您需要为当前请求设置重试策略:

 JsonObjectRequest jsonObjReq = new JsonObjectRequest(...); jsonObjReq.setRetryPolicy(new DefaultRetryPolicy( 0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 

完成sortingparsing中的Response.ErrorListener()方法后,使用下面的代码。 希望它对你有用。 我面临同样的问题,并用相同的代码解决它。

码:

 jsObjRequest.setRetryPolicy(new DefaultRetryPolicy( 30000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 

这将工作

  RetryPolicy mRetryPolicy = new DefaultRetryPolicy( 0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT); request.setRetryPolicy(mRetryPolicy);