Hoy en día es común que muchas apliaciones necesiten acceder a un web service (servicio web), para poder mostrarnos algún resultado. Hay muchas formas de acceder a un servicio web pero para mí la forma más fácil es usar la librería Ksoap para Android (descarga) con la cual podremos hacer peticiones de forma muy sencilla.
Luego de haber descargado la librería es necesario agregarla a nuestro proyecto, para esto basta con dar click derecho sobre nuestro proyecto , del menú que aparece seleccionamos Propiedades y en la ventana que nos aparece seleccionamos a la izquierda la opcion “Java Build Path”.
Al lado derecho se encuentra la opcion “Add External Jar” , perdon por los nombres en ingles, la version que uso de Eclipse esta en ingles. Seleccionamos la carpeta donde esta ubicada la libreria que acabamos de descargar y luego damos click en la pestaña “Order and Export” , donde seleccionamos la libreria que acabamos de importar.
Ya con la librería en nuestro proyecto, podemos empezar a consultar nuestro servicio, para este tutorial usaré un servicio web público que nos informa del clima a partir del nombre de la ciudad y país. Al web service podemos acceder en la siguiente URL : web service clima.
Lo primero que haremos será diseñar una sencilla interfaz donde tendremos 2 campos de texto, 2 etiquetas de texo y un botón.
Con el siguiente código tendremos lista nuestra interfaz:
Ahora crearemos una clase que se encargue de todas las operaciones para el acceso al web service. Esta clase tendrá como nombre cargaDatosWS . En ella tendremos un método que se llame getClima:
Este servicio web retorna como como respuesta un XML que luego tendremos que parsear, por ahora mostraremos la respuesta del servicio web tal cual. En nuestra Activity tendremos el siguiente código:
Algo interesante es que estamos usando un AsyncTask para poder realizar tareas en background, como se aprendió en un tutorial anterior (AsyncTask). Con esto logramos que tengamos una ventana con un mensaje de por favor espere mientras se realiza la consulta al servicio web.
Para tener en cuenta, como el servicio web es de origen estadounidense los nombres de los países y ciudades deben estar escritos en inglés al momento de ingresarlos al campo de texto… Lo siento.
Por ultimo les dejo el link de descarga del codigo fuente.(source)
Fecha: el 17 de octubre de 2012