2017-02-03 6 views
-1

サーバーにリクエストを送信しているときにエラーが発生します。私は、Volleyが要求を複数回送信しているという事実に誤りを追跡することができました。私は解決策のためのインターネットを検索、私は私が出会った何すべてを試みたが、それらのどれも問題以下複数のリクエストを送信するバレーAndroid

を解決するように見えるん私のコードです:

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

答えて

0

はこれを試してみてください:

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

I POSTリクエストで使用されるので再試行が可能

関連する問題