2017-10-11 21 views
1

私は、サーバーとデータを受け取るためのリクエストでJSONオブジェクトを送信するために、このメソッドを使用します。どのように私はアンドロイドのURLからの応答のために長く滞在できますか?

private void makeJsonObjectRequest1() { 
    message = "abcd"; 
    JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST, 
      G.myurl, js, new Response.Listener<JSONObject>() { 

     @Override 
     public void onResponse(JSONObject jsonObject) { 

      Log.d("***1", jsonObject.toString()); 
      try { 
       Log.d("***1", jsonObject.toString()); 
      } catch (Exception e) { 
       e.printStackTrace(); 
       Log.i("***2", "Exc"); 
      } 
     } 
    }, new Response.ErrorListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 
      VolleyLog.d("***3", "Error: " + error.getMessage()); 

      if (error instanceof NetworkError) { 
       message = "internet"; 
      } else if (error instanceof ServerError) { 
       message = "server"; 
      } else if (error instanceof AuthFailureError) { 
       message = "Cannot connect to Internet...Please check your connection!"; 
      } else if (error instanceof ParseError) { 
       message = "Parsing error! Please try again after some time!!"; 
      } else if (error instanceof NoConnectionError) { 
       message = "Cannot connect to Internet...Please check your connection!"; 
      } else if (error instanceof TimeoutError) { 
       message = "Connection TimeOut! Please check your internet connection."; 
      } 
      Log.i("***4", "Error:" + message); 
     } 
    }); 
    G.getInstance().addToRequestQueue(jsonObjReq); 
} 

私が受け取る「解析エラーいくつかの時間後にもう一度試してください!!」 とサーバーiではアプリから2つのリクエストを受け取ります! この問題を解決するにはどうすればよいですか? おかげで、あなたは私が

答えて

0

あなたはそれとして、キューセットを要求するリクエストを追加する前に、ボレーでポリシーをして再試行設定する必要がタイムアウト期間高めるために役立つ場合:

jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(
    30000, // This is your time in milliseconds for this its 30 seconds 
    DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 

時間を覚えていますが、ミリ秒であるとしますバックオフ制限と再試行回数を設定することもできます。

バレーのリクエストNOTを再試行すると、サーバーが2つのリクエストを受け取っている可能性があるため、ソリューション全体が

になるため、同じリクエストを2回繰り返さないように再試行の回数を変更します
jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(
30000, //the number of milliseconds to try out I have put 30seconds==30000milliseconds 
0, // maxNumRetries = 0 means no retry then volley wont retry 
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 

公式トレーニングfrom this linkを確認して、自分でクラスを調べることができます。

関連する問題