java

Petición HTTP GET en Java para consumir HTML o JSON

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:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

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.

public static String peticionHttpGet(String urlParaVisitar) throws Exception {
  // Esto es lo que vamos a devolver
  StringBuilder resultado = new StringBuilder();
  // Crear un objeto de tipo URL
  URL url = new URL(urlParaVisitar);

  // Abrir la conexión e indicar que será de tipo GET
  HttpURLConnection conexion = (HttpURLConnection) url.openConnection();
  conexion.setRequestMethod("GET");
  // Búferes para leer
  BufferedReader rd = new BufferedReader(new InputStreamReader(conexion.getInputStream()));
  String linea;
  // Mientras el BufferedReader se pueda leer, agregar contenido a resultado
  while ((linea = rd.readLine()) != null) {
    resultado.append(linea);
  }
  // Cerrar el BufferedReader
  rd.close();
  // Regresar resultado, pero como cadena, no como StringBuilder
  return resultado.toString();
}

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:

Respuesta de JSONPlaceholder

Ahora veamos este código que hace la petición con todo y try catch:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
class Main {
 public static void main(String[] args) {
  String url = "https://jsonplaceholder.typicode.com/todos/1";
  String respuesta = "";
  try {
   respuesta = peticionHttpGet(url);
   System.out.println("La respuesta es:\n" + respuesta);
  } catch (Exception e) {
   // Manejar excepción
   e.printStackTrace();
  }
 }

 public static String peticionHttpGet(String urlParaVisitar) throws Exception {
  // Esto es lo que vamos a devolver
  StringBuilder resultado = new StringBuilder();
  // Crear un objeto de tipo URL
  URL url = new URL(urlParaVisitar);

  // Abrir la conexión e indicar que será de tipo GET
  HttpURLConnection conexion = (HttpURLConnection) url.openConnection();
  conexion.setRequestMethod("GET");
  // Búferes para leer
  BufferedReader rd = new BufferedReader(new InputStreamReader(conexion.getInputStream()));
  String linea;
  // Mientras el BufferedReader se pueda leer, agregar contenido a resultado
  while ((linea = rd.readLine()) != null) {
   resultado.append(linea);
  }
  // Cerrar el BufferedReader
  rd.close();
  // Regresar resultado, pero como cadena, no como StringBuilder
  return resultado.toString();
 }
}

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:

Probando petición HTTP GET con Java y JSONPlaceholder

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 aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.