Introducción a Requests y las Peticiones HTTP en Python
En el desarrollo de aplicaciones modernas, interactuar con servicios web es una tarea muy común. Para lograr esto, se utilizan las peticiones HTTP, que permiten a los programas enviar y recibir datos a través de Internet. En el ecosistema de Python, la biblioteca más popular y sencilla para realizar estas tareas es Requests. En este artículo, aprenderás qué es Requests y cómo hacer peticiones HTTP en Python paso a paso, con ejemplos claros y prácticos.
¿Qué es Requests en Python?
Requests es una biblioteca de Python que facilita el envío de peticiones HTTP de manera sencilla e intuitiva. Fue creada para ser fácil de usar y para abstraer la complejidad del manejo de conexiones HTTP, encabezados, autenticación y manejo de datos. Gracias a Requests, puedes comunicarte con APIs, descargar información de sitios web y automatizar tareas que requieran acceder a recursos en línea.
Ventajas de Requests
- Sintaxis sencilla y legible
- Soporte para múltiples métodos HTTP (GET, POST, PUT, DELETE, etc.)
- Manejo fácil de parámetros y encabezados
- Compatibilidad con autenticación y manejo de cookies
- Amplia documentación y comunidad activa
¿Cómo Instalar Requests en Python?
Antes de poder utilizar Requests, debes instalar la biblioteca en tu entorno de desarrollo. La forma más sencilla de hacerlo es usando pip, el sistema de gestión de paquetes de Python.
pip install requests
Una vez instalada, puedes importarla en tu proyecto de la siguiente manera:
import requests
¿Cómo hacer peticiones HTTP con Requests?
Requests permite realizar peticiones HTTP de manera muy intuitiva. A continuación, te mostramos los pasos básicos para enviar diferentes tipos de solicitudes.
Paso 1: Realizar una petición GET
El método GET se utiliza para obtener datos de un servidor. Es el tipo de petición más común.
import requests
respuesta = requests.get(https://jsonplaceholder.typicode.com/posts/1)
print(respuesta.status_code) # Código de estado HTTP
print(respuesta.text) # Contenido de la respuesta en texto
print(respuesta.json()) # Contenido de la respuesta como JSON (si es posible)
Paso 2: Enviar una petición POST
El método POST se utiliza para enviar datos al servidor, por ejemplo, para crear un nuevo recurso.
import requests
datos = {title: foo, body: bar, userId: 1}
respuesta = requests.post(https://jsonplaceholder.typicode.com/posts, json=datos)
print(respuesta.status_code)
print(respuesta.json())
Paso 3: Agregar parámetros a una petición GET
Puedes enviar parámetros en la URL utilizando el argumento params
.
import requests
parametros = {userId: 1}
respuesta = requests.get(https://jsonplaceholder.typicode.com/posts, params=parametros)
print(respuesta.json())
Paso 4: Enviar encabezados personalizados
Es común que algunas APIs requieran encabezados HTTP personalizados, como tokens de autenticación.
import requests
encabezados = {Authorization: Bearer tu_token}
respuesta = requests.get(https://api.ejemplo.com/datos, headers=encabezados)
print(respuesta.status_code)
¿Cómo manejar las respuestas HTTP en Requests?
Una vez que realizas una petición, Requests te proporciona un objeto Response
que contiene toda la información de la respuesta.
Acceder a los datos de la respuesta
- Código de estado:
respuesta.status_code
- Contenido en texto:
respuesta.text
- Contenido como JSON:
respuesta.json()
- Encabezados:
respuesta.headers
Manejo de errores
Es importante gestionar los posibles errores que pueden ocurrir durante una petición HTTP. Requests proporciona el método raise_for_status()
para lanzar una excepción si la respuesta indica un error.
import requests
try:
respuesta = requests.get(https://jsonplaceholder.typicode.com/posts/invalid)
respuesta.raise_for_status()
except requests.exceptions.HTTPError as err:
print(fOcurrió un error: {err})
Conclusión
Ahora que sabes qué es Requests y cómo hacer peticiones HTTP en Python, puedes comenzar a interactuar con APIs y servicios web de manera sencilla y eficiente. Requests es una herramienta poderosa que simplifica el trabajo con HTTP y te permite enfocarte en la lógica de tu aplicación. Recuerda siempre manejar los errores y validar las respuestas para asegurar el correcto funcionamiento de tus programas.
¡Explora más sobre Requests y lleva tus proyectos de Python al siguiente nivel!