Java para programadores (11.4). Comunicaciones web con HttpURLConnection

Para poder acceder a un recurso remoto a través de internet deberemos utilizar sockets. Pero para ello, debemos de disponer de una IP o un nombre de dominio, debemos montar la URL y sus parámetros de una forma correcta, debemos eliminar los caracteres especiales (empezando por el espacio), controlar los headers, ….

Disponemos de la clase URL que nos resuelve la complejidad de las rutas, y que nos permite conectarnos a un recurso remoto de una forma transparente

Ejemplo de UrlConnection en Java

Sockets trabaja sin tener en cuenta esquemas (protocolos), con lo que nos obliga a crear todo el diálogo que podamos necesitar.

Si vamos a trabajar con esquemas del tipo http, https, o ftp, nos es más interesante un objeto que ya conozca sus características. El protocolo http, por ejemplo, incorpora gran cantidad de headers, que pueden ser necesarios; por ejemplo muchos sitios en Internet están controlando el navegador que se conecta a ellos, por lo que puede ser necesario, indicar el “Agente” que lo hace; entonces, debemos utilizar la clase URLConnection, para poder establecer las características de la conexión.

La clase URLConnection. Ejemplo de uso

Y si la conexión se hace a una dirección con esquema http, entonces disponemos de la clase HttpURLConnection y HttpsURLconnection, ambas clases heredan de URLConnection y se especializan en los esquemas http y https respectivamente. Podemos hacer:

Ejemplo de uso de httpUrlConnection en Java

Lo único que hemos necesitado es hacer un cast a URLConnection ya que lo que nos estaba devolviendo realmente openConnection era un HttpURLConnection.

Nos devolvía HttpURLConnection porque la url era http://……, por lo que sería conveniente antes de hacer un cast así, utilizar instanceOf para asegurarnos que lo hacemos bien

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Formacion, Java y etiquetada , . Guarda el enlace permanente.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.