2016-11-04 1 views
0

Il s'exécute deux fois; Il ne devrait fonctionner qu'une seule fois. J'ai essayé avecAndroid 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)); 
} 

et pourtant il fonctionne deux fois. Quelqu'un sait comment traiter ce problème car il ne devrait fonctionner qu'une seule fois.

+0

Afficher le code complet. –

+0

code complet pls –

+0

Voir le code Manoj – FABiO

Répondre

0

Au lieu d'envoyer 1 au retryPolicy Essayez de passer -1 montrent que votre code est appelé que once.Something comme ceci: -

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

Hope, il résout votre problème.