Skip to content
Android connection example doing GET and POST requests.
Java
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin
guide-resources
libs
res
src/com/example/connectionexample
.classpath
.project
AndroidManifest.xml
README.md
proguard-project.txt
project.properties

README.md

Guía de consumo de servicios Web

Contexto

Se desea construir una aplicación Android que permita listar un conjunto de hoteles y crear nuevos.

Lista de hoteles

Creación de nuevo hotel

Consideraciones iniciales

El servicio de la aplicación está implementado en el PaaS PHP Fog con el framework CodeIgniter y el repositorio de su código fuente se encuentra en ConnectionExampleServer.

La aplicación Android se encuentra en ConnectionExample y esta implementada para la version 2.2 (API 8).

Desarrollo del lado del servidor

Se creó un controlador que va atender las peticiones. Representa el WS de consultar hoteles (all) y de registrar uno nuevo (insertHotel).

Se creó un modelo encargado de interactuar con la DB para consultar los hoteles y registrar uno nuevo.

El método all del controlador consulta los hoteles existentes y los codifica como JSON por medio de la instrucción json_encode($hotels).

 JSON Generado

Tabla de hoteles

El método insertHotel del controlador obtiene los parámetros name y valueReservation enviados en la petición POST y trata de crear un nuevo hotel en la DB. De crearlo exitosamente responde un JSON con la propiedad success en true, de lo contrario retorna en ésta misma propiedad false.

Desarrollo móvil

Se deben declarar los permisos para verificar la conectividad del dispositivo e interactuar con Internet.

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Se usa la clase Connector para realizar la interacción con los WS. Allí está implementada una petición básica por el método GET y otra por el método POST. Por medio de éste último método de petición se pueden enviar parámetros.

Lista de hoteles

En la actividad HotelList es donde se desea mostrar el listado de hoteles.

Para tal propósito se implementa un tarea asíncrona que hace una petición GET al WS all. Cuando la respuesta es obtenida, se procede a ser interpretada como JSON.

JSONArray hotelsArray = new JSONArray(hotelsJsonString);

Se recorre cada uno de los objetos que representan un hotel y se obtienen sus propiedades.

JSONObject jsonHotel = hotelsArray.getJSONObject(i);
Hotel hotel = new Hotel();

hotel.setId(jsonHotel.getLong("id"));
hotel.setName(jsonHotel.getString("name"));

Creación de hoteles

La actividad HotelList tiene un botón que permite navegar a la actividad de creación de hoteles: NewHotel. Está actividad permite a un usuario crear un hotel con su nombre y valor de reserva.

Para su implementación se usa la tarea asíncrona NewHotelTask que realiza una petición POST al WS insertHotel con los valores ingresados por el usuario. Al finalizar éste proceso, se finaliza la actividad y se devuelve a la lista de hoteles.

Something went wrong with that request. Please try again.