Resultado de imagen para android

¿Te gustaría aprender Desarrollo de Apps Moviles Android desde cero?
Tenemos los cursos que necesitas.¡Haz clic aquí!

Al trabajar con aplicaciones Android muchas veces nos surge la necesidad de comunicarnos con bases de datos externas para el intercambio de información, esto se puede conseguir de varias maneras:

  • Scripts PHP
  • Usando web services, ya sea usando JSON o SOAP, en esté artículo vamos a centrarnos en la conexión con servicios web en asp.net. Para ello usaremos la librería kSoap2 para android.

Uso de kSOAP2 en android

  1. Lo primero es descargar la librería e importarla en el proyecto que quieres comunicar:
  2. Definimos 4 variables que usaremos posteriormente
    static String NAMESPACE = "http://tempuri.org/";
    static String URL = "http://localhost/Servicios/Conexion.asmx";
    private String SOAP_ACTION;
    private String METODO;
    
    • NAMESPACE => El namespace declarado en el webservice, por defecto tempuri.org, es recomendable cambiarlo antes de subirlo a producción.
    • URL => La url con la que se comunicará.
    • SOAP_ACTION
    • MÉTODO => Método del web service a tratar
  3. Añadir parámetro si se incluyen en la petición, yo por comodidad los incluyo en un hastable y luego los recorro:
          SoapObject Solicitud = new SoapObject(NAMESPACE, METODO);
        	Solicitud.addProperty("SOAPAction" ,SOAP_ACTION);
    if (hsParametros!=null)
    {
        Enumeration eParametros=hsParametros.keys();
    	
        while (eParametros.hasMoreElements()) {			
        	Object obj = eParametros.nextElement();	
        	Solicitud.addProperty(obj+"" ,hsParametros.get(obj));			
        }
    }

    De una manera simple seria así para un único parametro:

    PropertyInfo PrimerParametro = new PropertyInfo ();
    
    PrimerParametro.SetName ("Nombre del parámetro");
    PrimerParametro.SetValue ("Valor del parámetro");
    
    Solicitud.addProperty (PrimerParametro);
    

    Se crea un objeto de tipo SoapSerializationEnvelope y se inicializa con SoapEnvelope.VER11 como parámetro

        	SoapSerializationEnvelope Envoltorio = new SoapSerializationEnvelope (SoapEnvelope.VER11);
    
  4. Si es un servicio .Net como en nuestro caso se declara como true:
    Envoltorio.dotNet = true;
  5. Se asigna la solictud soap:
    Envoltorio.setOutputSoapObject (Solicitud);
  6. Se setea la url donde se encuentra el servicio
    HttpTransportSE TransporteHttp = new HttpTransportSE(URL);

    Con ésto tenemos la petición lista para ser lanzada

  7. Ya sólo queda hacer la llamada al servicio y recoger los datos:
    try {
    	TransporteHttp.call (SOAP_ACTION, Envoltorio);
    	}catch (Exception e) {
    		e.printStackTrace();
    	}
    		
    	
    //Recogida de datos enviados por el servicio
    try {
    		
    	SoapObject objSoap= (SoapObject)Envoltorio.getResponse();   
    		
    	if (objSoap!=null)
    		return objSoap;
    	else
    		return null;
    		
    } catch (Exception e) {
    		e.printStackTrace();
    		return null;
    }
        
    
  8. Finalmente, slo hace falta recoger el objeto y hacer un casting al tipo deseado:
    for (int i=0; i < resultado.getPropertyCount(); i++)
    {
          objSoap.getProperty(i).toString();
    }

Te esperamos en los siguientes artículos en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.

¿Te gustaría aprender Desarrollo de Apps Moviles Android desde cero?
Tenemos los cursos que necesitas.¡Haz clic aquí!
About Author

NGuerrero

0 0 votos
Article Rating
Suscribir
Notificar de
guest
0 Comments
Comentarios.
Ver todos los comentarios
0
¿Te gusta este articulo? por favor comentax