Probando petición HTTP GET con Java y JSONPlaceholder

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
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
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.

7 comentarios en “Petición HTTP GET en Java para consumir HTML o JSON”

  1. 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.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *