Obtener respuesta de URL con Java y HttpUrlConnection
En este tutorial vamos a ver cómo hacer una petición HTTP de tipo GET con Java. Es decir, obtener la respuesta HTTP (ya sea HTML, JSON, texto, etcétera) que se obtiene al visitar una URL.
No vamos a usar ninguna librería externa ni paquetes de terceros, solamente URL, HttpUrlConnection y algunos búferes.
Esto será simple pero a partir de esto podremos hacer peticiones más grandes.
Imports necesarios
Vamos a importar los siguientes paquetes que ya están en la “librería estándar” de Java:
Con eso tenemos.
Lo que vamos a consumir
Para no tener que configurar un servidor ni esas cosas (eso será parte de otro post) vamos a consumir la API de JSONPlaceholder.
Eso regresa un JSON que por el momento no vamos a parsear para efectos de simplicidad, pero vamos a imprimirlo.
Actualización: si quieres puedes ver cómo parsear el JSON recibido en este otro post.
Configurando entorno
Si no tienes Java, mira cómo instalarlo aquí. También recomiendo instalar NetBeans para que tu desarrollo en Java sea más fácil.
Función para hacer una petición GET en Java
La función que vamos a ver recibe una cadena, que es la ruta absoluta o URL que vamos a consumir. Está definida para lanzar una excepción, por lo que al llamarla debemos encerrarla en un try catch.
Regresa una cadena que será la respuesta HTTP. Podemos llamarla desde cualquier lugar o modificarla de acuerdo a nuestras necesidades.
Ejemplo de petición HTTP GET en Java
Ahora sí veamos el ejemplo en donde consumimos la API de JSONPlaceholder. La URL será un “todo” es decir un quehacer o cosa pendiente, la URL es: https://jsonplaceholder.typicode.com/todos/1
Con el navegador, la respuesta es:

Ahora veamos este código que hace la petición con todo y try catch:
Así es como consumimos un JSON a través de una URL con Java, en los siguientes posts veremos cómo parsear este JSON.
Al ejecutar este código, la salida es:

Con eso sentamos las bases para consumir cualquier servicio web ya sea programado por nosotros o para consumir la API de cualquier otro sitio.
Te invito a leer más sobre Java o el consumo de API’s.
estoy tratando de recuperar como vos lo implementaste perfectamente, desde un login el mail y la contraseña ingresados, lo debo hacer utilizando Json, Ajax con Java… La verdad no me doy cuenta que debo cambiar o como debo hacerlo…. desde los archivos html uso javascript….. Agradeceria me puedas ayudar. Gracias.
Hola. En este caso sería una petición POST para enviar los valores en el cuerpo de la respuesta
Saludos
necesito enviar una respuesta a la api.
Me funciona excelente tutorial!! Para el caso de usar una url con localhost como seria?
Como sería con otra URL??
Simplemente hay que cambiar la variable: https://gist.github.com/parzibyte/88e79d6ee511253479e68e1e3a6d1957#file-main-java-L7
Un saludo
Excelente! Fácil de leer e implementar