sábado, 25 de febrero de 2012

Conectar Android con Servidor externo WebService

Buenas tardes,

Hoy ha caido en mis manos un buen ejemplo de como conectar un WebService con nuestra apli en Android:

instalar la libreria

Deberá bajar el archivo mas reciente de la librería ksoap2
http://code.google.com/p/ksoap2-android/

El sistema se probo con “ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar” y funciona correctamente.

1- Seleccione el proyecto en el cual referenciará la librería, luego boton derecho
2- Selección propiedades
3- Seleccione [Java Build Path]
4- Seleccione [Add Externals JARs]
5- Seleccione la librería a referenciar en este caso “ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar”
6- Seleccione [Abrir] y luego [OK]

ver imagen

Codigo



final String NAMESPACE = "http://tempuri.org/";



final String URL="http://186.XXX.XXX.79/Sincro_Mobile/Sincro.asmx";

final String METHOD_NAME = "Sincro_Maestros";

final String SOAP_ACTION ="http://tempuri.org/Sincro_Maestros";



ws_resultado.setText("");



//Se crea un objeto SoapObject para poder realizar la peticion

//para consumir el ws SOAP. El constructor recibe

//el namespace. Por lo regular el namespace es el dominio

//donde se encuentra el web service



request = new SoapObject(NAMESPACE, METHOD_NAME);



//Le agrega los parametros al request



request.addProperty("user", "qqqqq");

request.addProperty("pass", "qqqqqqqqqq");

request.addProperty("x", "0113143");

request.addProperty("Nombre_Tabla", "COMBUSTIBLE");

request.addProperty("Cant_Registros_Mobile", 0);





//Se crea un objeto SoapSerializationEnvelope para serealizar la

//peticion SOAP y permitir viajar el mensaje por la nube

//el constructor recibe la version de SOAP



envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.dotNet = true; //se asigna true para el caso de que el WS sea de dotNet



//Se envuelve la peticion soap

envelope.setOutputSoapObject(request);



//Objeto que representa el modelo de transporte

//Recibe la URL del ws

HttpTransportSE transporte = new HttpTransportSE(URL);



try {

//Hace la llamada al ws

transporte.call(SOAP_ACTION, envelope);



//Se crea un objeto SoapObject y se obtiene la respuesta

//de la peticion



resultado_xml =(SoapObject)envelope.getResponse();

ws_resultado.setText(resultado_xml.toString()) ;

}

catch (IOException e) {

ws_resultado.setText(e.toString());

}

catch (XmlPullParserException e) {

ws_resultado.setText(e.toString());

}



}




No hay comentarios:

Publicar un comentario