BIGtheme.net http://bigtheme.net/ecommerce/opencart OpenCart Templates

Consumir Web Service en Android de una manera sencilla

El dia de hoy les traigo una guia para poder consumir una servicio web de una manera sencilla, rapida y reutilizable.

Al momento de querer consumir un servicio web android, debemos hacerlo en un hilo diferente (para no bloquear el hilo principal) y esto me llevaba (creo que a ustedes les pasa igual) a generar una clase AsyncTask interna dentro de cada clase en la que deseara consumir un servicio web, esto ya que no para poder obtener los datos del servicio web, no los podia devolver de una manera sencilla con AsyncTask.

 

Cree una biblioteca de Android que me permite consumir servicios web de una manera sencilla, solamente creando un objeto y pasandole los parametros.

Biblioteca de Android

Estructura Biblioteca Android WebService
Estructura Biblioteca Android WebService

La biblioteca consta de 3 Clases:

  • Asynchtask: Es una interfaz creada, con el fin de poder retornar los datos obtenidos del servicio web.
  • HttpRequest: Es una clase con el fin de poder hacer llamados a paginas web
  • WebService: Es la clase que se encarga de realizar el llamado al servicio web, y una vez obtenga los datos, los retorna a la clase que implementa Asynchtask.

La unica clase que se usara sera la clase WebService. Esta clase recibe unos parametro en el constructor para facilitar todas las cosas. Para crear una instancia de esta clase se pasaran 4 parametros

Parametros clase WebService
Parametros clase WebService
  • urlWebService: Cadena  de texto que indica donde esta alojado el servicio web (algo como http://www.ejemplosprogramacion.co/index.php/feed/)
  • data: Una variable Map con los datos que necesita el servicio web, este campo puede no ser necesario, en dicho caso, se envia un objeto Map vacio.
  • activity: Actividad desde la que se llama a esta clase, esto con el fin de mostrar un cuadro de “Loading”.
  • callback: Clase que implementa la interfaz Asynchtask, y a la cual se le retornaran los datos obtenidos dle servicio web.

 

Ahora vamos a crear un proyecto de android que importara el proyecto anterior y consumira un servicio web.

 

  1. Creamos un nuevo proyecto de Android con eclipse.
  2. Importamos la biblioteca de android como un proyecto, para eso:
    • Damos cli derecho sobre el nombre del proyecto
    • Damos clic en propiedades
    • Seleccionamos Android
    • Bajamos y damos clic en el boton Add.
    • Selecionamos el proyecto WebService
    • Damos Clic en Ok
    Importar proyecto biblioteca en Android 1
    Importar proyecto biblioteca en Android 1

    sshot-5

  3. Agregamos un boton al layout
    Layout Llamado Servicio Web
    Layout Llamado Servicio Web
  4. Modificados el xml del boton, para que cuando se haga clic, se ejecute la funcion acciones
    XML Layout Llamado Servicio Web
    XML Layout Llamado Servicio Web

     

  5. Implementamos la interfaz Asynchtask en nuestra clase Activity Implementacion interfaz
  6. Implementamos la funcion que se describe en la interfaz Asynchtask  dentro de la clase MainActivityImplementacion de funcion de la interface Asynchtask
  7. Creamos la funcion que responde al evento clic del boton. Esta funcion determina cual objeto fue el que genero el evento clic (en nuestro caso es el boton, cuyo id es button1), una vez se determina quien realizo el llamado, se crea el objeto WebService con los parametro descritos con anteioridad y se ejecuta el servicio web
    Creacion de objeto WebService
    Creacion de objeto WebService

Y listo. Ahora en la funcion processFinish realizaremos las tareas necesarias con los datos obtenidos del servicio web, en nuestro caso lo que se hace es imprimir lo que retorna el servicio web

 

Aqui puedes descargar el proyecto WebService para que lo puedas importar a tu proyecto y puedas realizar servicios web de una menra sencilla

 

Aqui puedes descargar el codigo fuente del ejemplo

 

Check Also

Forecasting meteorology models implemented by the feed-forward architecture of neural networks

Crear un modelo de prediccion usando inteligencia artificial (redes neuronales)

Este contenido está reservado a los miembros del sitio web. Si usted es miembro, por ...

4 comments

  1. Hola, ¿cómo puedo descargarme el proyecto?, no parece que funcione el link de arriba…

  2. El link no aparece, me puedes enviar el ejemplo a mi correo por favor.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *