2017-02-03 4 views
-1

Ich sende eine Anfrage an den Server und es verursacht Fehler. Ich konnte den Fehler auf die Tatsache zurückführen, dass Volley die Anfrage mehr als einmal absendet. Ich suchte im Internet nach Lösungen, ich alle ausprobiert, was ich stieß auf, aber keiner von ihnen scheint das ProblemVolley sendet mehrere Anfragen Android

Below mein Code zu lösen: Die

public void btnLogOut(View view) { 

    final ProgressDialog loading = ProgressDialog.show(this, "Logging Out", "Please wait...", false, false); 
    //cover.setVisibility(View.GONE); 
    String token = dbHelper.getAuth().getString(0); 

    String IP = helperFunctions.getAppUrl(); 
    final String url = IP + "/deregister?token=" + token+ "&appVersion=" + versionCode; 

    JsonObjectRequest sr = new JsonObjectRequest(Request.Method.POST, url,null, new Response.Listener<JSONObject>() { 
     @Override 
     public void onResponse(JSONObject response) { 
      loading.dismiss(); 
      logOut.LogOutUser(); 
     } 
    }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 

        if (VolleyErrorHelper.getMessage(error, Settings.this).equalsIgnoreCase("401")){ 
         logOut.MakeUserLogin(); 
        }else{ 
         cover.setVisibility(View.VISIBLE); 
        } 
        //VolleyLog.e("Deregister GCM", "Error: " + error.getMessage()); 
        loading.dismiss(); 
        Toast.makeText(Settings.this, "Process not completed, try again!", Toast.LENGTH_LONG).show();; 
       } 
      }); 
    sr.setRetryPolicy(new DefaultRetryPolicy(0, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
    RequestQueue requestQueue = Volley.newRequestQueue(this); 
    requestQueue.add(sr); 
} 

Antwort

0

Versuchen:

 sr.setRetryPolicy(new DefaultRetryPolicy(0, 0, DefaultRetryPolicy.DEFAULT_TIMEOUT_MS)); 

I Wird für die POST-Anfragen verwendet, sodass ein erneuter Versuch ausgeführt werden kann