Jakarta Commons HttpClient

1
32165

Jakarta Commons HttpClient

Introducción

Cuando necesitamos realizar tareas de comunicaciones bajo J2SE, normalmente hacemos uso del paquete java.net y sus extensiones.

java.net.HttpURLConnection y java.net.URL son, prácticamente las únicas clases que nos proporciona J2SE para abstraernos un poco de las comunicaciones bajo HTTP. Aunque cualquier tarea se puede hacer usando simplemente las clases que vienen de serie con la plataforma, estas son poco elegantes (en términos de Orientación a Objetos) para conseguir funcionalidad cliente HTTP.

HTTPClient, nos proporciona un amplio y elegante Framework para realizar las tareas de comunicación HTTP en el lado cliente.

Para descargar este excelente subproyecto de Jakarta u obtener una información más extensa, puede dirigirse a
http://jakarta.apache.org/commons/httpclient

Características Principales

Desde mi punto de vista las principales características son:

  1. Administración automática de Cookies.
  2. Seguimiento automático de redirecciones.
  3. Cancelación de peticiones en curso.
  4. Soporte de gzip para ahorrar ancho de banda en nuestra comunicaciones.
  5. Administrador de conexiones multihilo para poder tener varias tareas simultaneas en curso. (Descargarnos dos aplicaciones al mismo tiempo, por ejemplo)
  6. Manejo automático de SSL
  7. Logs de la información que se envia o recibe: Cabeceras enviadas/recibidas, Cookies, etc. (Muy útil para determinadas aplicaciones o para depuraciones).
  8. Pool de conexiones para poder reutilizar conexiones sin tener que abrirlas o cerrarlas constantemente.
    Lo hace el API, según los parámetros de configuración que se le especifiquen. Por ejemplo, que se cierren automáticamente las conexiones que lleven 2 minutos sin ser usadas.
  9. Poder subir ficheros vía POST sin tener que cargar en memoria en memoria la información que se desea subir.

Vamos a ver un ejemplo

En el siguiente ejemplo se tratan varios de los aspectos más comunes en cualquier comunicación HTTP. En concreto trateremos:

  • Haremos una petición GET y otra POST añadiendo cabeceras personalizadas y parámetros.
  • Configuraremos el cliente para salir a través de un Proxy
  • Nos autentificaremos en caso de que el servidor lo requiera (Autentificación Digest o Basic).
  • Seguiremos la redirecciones en caso de que se produzcan.
  • Nos conectaremos a un servidor seguro (SSL)

He de resaltar que este API tiene dependencias con otros APIs de Jakarta Commons, por lo que debemos distribuirlos junto a nuestra aplicación para que funcione.
En concreto, estas dependencias son:

  1. Jakarta Commons Codec. (Este para la gran mayoría de los casos no es necesario)
  2. Jakarta Commons Logging.

HttpClientTutorial.java (El ejemplo es autocomentado)

Bueno, espero que os haya sido de utilidad este tutorial.

En Autentia Real Business Solutions, nos gusta compartir el conocimiento. Aquí teneis un poquito más de nuestra aportación.

Si algún día necesitais ayuda con vuestros proyectos o necesitais formación, podéis encontrarnos en Autentia

Carlos García Pérez. Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.

cgpcosmad@gmail.com

1 Comentario

Dejar respuesta

Please enter your comment!
Please enter your name here