2016-11-04 90 views
0

它运行两次;它应该只运行一次。我试着用Android Volley Double Post

_urlWebService = vars.ipServer.concat("/ws/disponibilidadTicket");

JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET, _urlWebService, null, 
     new Response.Listener<JSONObject>() 
     { 
      @Override 
      public void onResponse(JSONObject response) 
      { 
       try 
       { 
        JSONArray clientes; 

        if(response.getBoolean("status")) 
        { 


        } 

       } 
       catch (JSONException e) 
       { 
        e.printStackTrace(); 
       } 
      } 
     }, 

     new Response.ErrorListener() 
     { 
      @Override 
      public void onErrorResponse(VolleyError error) 
      { 

       if (error instanceof TimeoutError) 
       { 
        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); 
        builder 
          .setMessage("Error de conexión, sin respuesta del servidor.") 
          .setPositiveButton("Aceptar", new DialogInterface.OnClickListener() 
          { 
           @Override 
           public void onClick(DialogInterface dialog, int id) 
           { 
           } 
          }).show(); 
       } 

       else 

       if (error instanceof NoConnectionError) 
       { 
        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); 
        builder 
          .setMessage("Por favor, conectese a la red.") 
          .setPositiveButton("Aceptar", new DialogInterface.OnClickListener() 
          { 
           @Override 
           public void onClick(DialogInterface dialog, int id) 
           { 
           } 
          }).show(); 
       } 

       else 

       if (error instanceof AuthFailureError) 
       { 
        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); 
        builder 
          .setMessage("Error de autentificación en la red, favor contacte a su proveedor de servicios.") 
          .setPositiveButton("Aceptar", new DialogInterface.OnClickListener() 
          { 
           @Override 
           public void onClick(DialogInterface dialog, int id) 
           { 
           } 
          }).show(); 
       } 

       else 

       if (error instanceof ServerError) 
       { 
        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); 
        builder 
          .setMessage("Error server, sin respuesta del servidor.") 
          .setPositiveButton("Aceptar", new DialogInterface.OnClickListener() 
          { 
           @Override 
           public void onClick(DialogInterface dialog, int id) 
           { 
           } 
          }).show(); 
       } 

       else 

       if (error instanceof NetworkError) 
       { 
        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); 
        builder 
          .setMessage("Error de red, contacte a su proveedor de servicios.") 
          .setPositiveButton("Aceptar", new DialogInterface.OnClickListener() 
          { 
           @Override 
           public void onClick(DialogInterface dialog, int id) 
           { 
           } 
          }).show(); 
       } 

       else 

       if (error instanceof ParseError) 
       { 
        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); 
        builder 
          .setMessage("Error de conversión Parser, contacte a su proveedor de servicios.") 
          .setPositiveButton("Aceptar", new DialogInterface.OnClickListener() 
          { 
           @Override 
           public void onClick(DialogInterface dialog, int id) 
           { 
           } 
          }).show(); 
       } 

      } 

     }) 
{ 
    @Override 
    public Map<String, String> getHeaders() throws AuthFailureError 
    { 
     HashMap<String, String> headers = new HashMap <String, String>(); 
     headers.put("Content-Type", "application/json; charset=utf-8"); 
     headers.put("WWW-Authenticate", "xBasic realm=".concat("")); 
     headers.put("MyToken",sharedPreferences.getString("MyTokenAPI")); 
     return headers; 
    } 
}; 

ControllerSingleton.getInstance().addToReqQueue(jsonObjReq, ""); 
jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(20000, 1, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
} 

,但它运行两次。有人知道如何处理这个问题,因为它应该只运行一次。

+0

显示完整的代码。 –

+0

完整代码请输入 –

+0

查看其代码Manoj – FABiO

回答

0

而不是发送1至retryPolicy的尝试传球-1表明你的代码只调用once.Something这样的: -

jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(20000, -1, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 

希望,它可以解决你的问题。