Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/09/2013, 06:06
educdd
 
Fecha de Ingreso: octubre-2012
Ubicación: Madrid
Mensajes: 67
Antigüedad: 12 años
Puntos: 1
Respuesta: Consumir servicios php

buenas nrzlftw

yo te aconsejaría que para consumir servicios web utilices la librería que google presentó para este fin llamada volley: https://android.googlesource.com/pla...23e8c1d143d5fa

Su uso puede parecer complicado en un principio, pero ni mucho menos. Te dejo un ejemplo por aquí:

vas a tener que crear un método donde hagas lo siguiente:

En la clase en la que hagas la petición al php tendrás que crear un atributo del tipo RequestQueue

Código:
RequestQueue mRequestQueue;
después, en el método principal tendrás que inicializarlo. Además tendrás que hacer la llamada al método nuevo que crearemos para hacer la petición propiamente dicha.

Código:
mRequestQueue = Volley.newRequestQueue(context);
...

...
metodoNuevoParaHacerLaPeticion();
Código:
private metodoNuevoParaHacerLaPeticion()
{
      JsonObjectRequest jr = new JsonObjectRequest(Request.Method.GET, url, null, 
    			new Response.Listener<JSONObject>() 
    			{
    				@Override
    				public void onResponse(JSONObject response) 
    				{
    					//el parseo del json que tengas
                     
    	         
    				}
    			}, 
    			new Response.ErrorListener() 
    			{
    				@Override
    				public void onErrorResponse(VolleyError error)
    				{	
    					//error que quieras mostrar
    				}
    			});

	        mRequestQueue.add(jr);
}
En el código del método nuevo tendrás que poner el parseador, que debería ser algo como esto, más o menos:

Código:
ArrayList<News> productosList = new ArrayList<Producto>();
try
		{
			JSONArray jArray = jObject.getJSONArray("productos");
		
			for (int i = 0; i < jArray.length(); i++) 
			{
				Producto prod = new Producto();
				
				prod.setCode(jArray.getJSONObject(i).getString("codeqr"));
                                prod.setActions(jArray.getJSONArray("actions"));
				
				productosList.add(prod);
			}
		}
		catch (Exception e)
		{
		}
Este código del parseo le he hecho del tirón, así que a lo mejor no está bien, pero es para que te hagas una idea.


Un saludo