如果Web服务错误,Volley会发送两次或更多数据

时间:2018-02-15 05:08:42

标签: android android-volley

我在android中使用过volley。我使用Web服务获取数据和发送请求。当数据库显示错误时,再次发送请求。我只想发送请求一次。如果显示错误,将调用凌空超时.. 我在android中使用过波纹管代码..

  1. 我用来将数据发送到网络服务的Bellow代码

     private void do_execute1() {
       pDialog.show();
        StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    //pDialog.dismiss();
    
    
                    try {
                        JSONObject jsonObject = new JSONObject(response);
                        JSONArray loginNodes = jsonObject.getJSONArray("testodes");
    
                        pDialog.dismiss();
    
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
    
                    pDialog.dismiss();
                    try {
                        if (error != null && error.getMessage() != null) {
    
                            Log.e("Error : ", error.getMessage());
                        } else {
    
    
                        }
                    } catch (Exception e) {
    
                    }
                }
            }) {
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<>();
            params.put("request_Code","");
    
            return params;
        }
    
    };
     //Begin set Time Out
     new VoleyErrorHandling(stringRequest);
     //End set Time out
     RequestQueue requestQueue = Volley.newRequestQueue(this);
      requestQueue.add(stringRequest);
    }
    
  2. 这是超时&amp;最大尝试次数

     public class VoleyErrorHandling {
    
       public VoleyErrorHandling(StringRequest stringRequest) {
    
    
          stringRequest.setRetryPolicy(new RetryPolicy() {
            @Override
            public int getCurrentTimeout() {
                // Here goes the new timeout
                return 1 * 60 * 1000;
    
            }
    
            @Override
            public int getCurrentRetryCount() {
                // The max number of attempts
                return 1;
            }
    
             @Override
             public void retry(VolleyError error) throws VolleyError {
    
             }
         });
    
    
       }
     }
    

    如何解决它请帮助我..

0 个答案:

没有答案