Operaciones HTTP En Android Con El Cliente HttpURLConnection
HttpURLConnection
Este artículo explicará de qué forma se puede enviar y recibir datos hacia un servidor desde una aplicación
Android, con el propósito de introducir a los desarrolladores a la creación de servicios en la nube desde fuentes
de datos externas.
En primera instancia se expondrán conocimientos introductorios sobre el protocolo HTTP, el cualhabilita el
intercambio de información.
Luego verás a través de un ejemplo práctico como leer y postear comentarios en un servidor externo. Y
Adicionalmente se integrarán las tareas asíncronas para asegurar el correcto funcionamiento del hilo principal.
Finalmente se concluye con aspectos adicionales del mecanismo usado para la conexión y observaciones que
pueden ayudarte en la conexión de lasaplicaciones Android.
Introducción al funcionamiento del protocolo HTTP
Las conexiones que haremos desde nuestras aplicaciones Android hacia los servidores web siguen un estándar
internacional llamado Hipertext Transfer Protocol HTTP. Este protocolo consiste en reglas sencillas de
transferencia de recursos o archivos entre equipos interconectados a una red.
Al equipo que hace la petición paraenviar u obtener datos se le llama Cliente y al que contiene el recurso o el
espacio para almacenar es llamado Servidor.
La comunicación se establece a través de una petición de envío, la cual contiene los datos del cliente, como el
sistema operativo que usa, el navegador web desde donde se hace la petición, la ubicación del archivo solicitado
(URL), etc.
Una petición puede tener múltiples objetivosdependiendo del método que se elija. Los tipos de peticiones más
comunes son el Retorno de datos y la Publicación de datos. Técnicamente se les conoce como los métodos
GET y POST.
La búsqueda de una página web a través de la URL es un buen ejemplo de una petición GET, donde el cliente
especifica la URL y el servidor retorna en la información HTML necesaria para que el navegador realice surespectivo parsing.
El ejemplo más popular del método POST se refleja en el envío de información desde un formulario hacia la base
de datos del servidor. Aquí hacemos lo contrario, dictaminamos los datos y el servidor los recibe para
almacenarlos y darles persistencia.
Cada vez que entras a hermosa programación desde tu navegador la comunicación HTTP sería similar a esta:
GET /index.html
Host:www.hermosaprogramación.com
User Agent: Mozilla/4.0 (Compatible; MSIE 7.0; Windows NT 6.0)
Accept: */*
Dicha petición es recibida por el Servidor, quién arroja la respuesta dependiendo del estado del recurso solicitado,
que en este caso es el archivo HTML que representa el Home de Hermosa Programación.
HTTP/1.0 200 OK
Date: Fri, 27 Dec 2014 23:59:59 GMT
Content-Type: text/html
Content-Length: 1467
Hermosa Programación
(El contenido restante)
.
.
.
Como se nota, el estado de respuesta es 200 OK, un código que significa que todo marcha sobre ruedas con este
recurso. En seguida se ubican metadatos asociados a la fecha de consulta, el tipo de contenido enviado, su tamaño
y al final el contenido HTML. Con esta información, tu navegador web ya puedeimplementar la lógica necesaria
para mostrar la página web.
Ahora veamos el esquema de una petición POST, cuyo objetivo es enviar los datos Nombre y Precio hacia la base
de datos del servidor:
POST /data/Insertar-Productos.php HTTP/1.0
From: frog@jmarshall.com
User-Agent: HTTPTool/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
Nombre=Motorola&Precio=2000
En este caso se indica laruta de ubicación donde se publicaran los resultados, una cuenta de correo como el origen
de la petición, el tipo de contenido estándar para los formularios, el tamaño de los datos y finalmente dos pares
clave-valor encriptados con UTF-8.
Si deseas que tus aplicaciones tengan acceso total a la conexión de tu dispositivo Android es necesario que
incluyas los siguientes permisos en tu archivo...
Regístrate para leer el documento completo.