Ejemplo con el cliente HTTP/2 de Java

Publicado por pico.dev el .
blog-stack java planeta-codigo programacion
Comentarios

Java

Otra de las nuevas funcionalidades incluidas en Java 9 aunque en modo incubación es el cliente con soporte para HTTP/2 para realizar peticiones a recursos usando este protocolo más eficiente y rápido. Al mismo tiempo se ha simplificado el código necesario para realizar una petición y obtener el resultado de una URL. También se ha añadido la funcionalidad de realizar peticiones asíncronas y creación de conexiones de WebSockets.

Las clases importantes de esta nueva API con HttpClient, HttpRequest y HttpResponse. Estas clases se encuentran en el módulo de incubación jdk.incubator.httpclient, una vez que sea definitiva la API se renombrará el módulo.

El siguiente ejemplo realiza una petición a la página del buscador Google con unas cabeceras y obtiene el código de estado, las cabeceras devueltas y el cuerpo de la página de resultado. En la declaración del módulo para usar el cliente hay que indicar que tiene como requerimiento su módulo de jdk.incubator.httpclient.

Petición con el cliente de Java para HTTP/2

Otras fomas de manejadores del resultado de la petición son los siguientes:

Se puede definir la política de cómo procesar las redirecciones para seguirlas, no seguirlas o solo si son seguras o utilizan el mismo protocolo.

Con la clase SSLContext es posible establecer autenticación para el cliente usando un certificado como muestro en el artículo Autenticación mutua de cliente y servidor con certificados.

Para ejecutar el ejemplo usando Gradle y Java 9 hay que añadir un poco de configuración al script de construcción que posiblemente en un futuro no será necesaria cuando se mejore el soporte.

El código fuente completo del ejemplo puedes descargarlo del repositorio de ejemplos de Blog Bitix alojado en GitHub y probarlo en tu equipo ejecutando el comando ./gradlew run.

Yo apoyo al software libre