Cómo utilizar la biblioteca de solicitudes de Python para HTTP
La biblioteca requests
es un módulo popular de Python que simplifica el proceso de realizar solicitudes HTTP. Elimina la complejidad de manejar solicitudes y respuestas, lo que facilita la interacción con servicios web y API. En este artículo, exploraremos los conceptos básicos del uso de la biblioteca requests
, incluido cómo enviar varios tipos de solicitudes HTTP y manejar respuestas.
Instalación de la biblioteca de solicitudes
Antes de poder usar la biblioteca requests
, deberá instalarla. Puede instalarla usando pip
, el administrador de paquetes de Python. Ejecute el siguiente comando en su terminal:
pip install requests
Cómo realizar una solicitud GET sencilla
La solicitud HTTP más básica es una solicitud GET, que recupera datos de un servidor. A continuación, se muestra cómo se puede utilizar la biblioteca requests
para realizar una solicitud GET:
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
En este ejemplo, enviamos una solicitud GET a la API de GitHub e imprimimos el código de estado HTTP y el contenido de la respuesta en formato JSON.
Envío de solicitudes POST
Las solicitudes POST se utilizan para enviar datos a un servidor, como envíos de formularios. A continuación, se muestra cómo enviar una solicitud POST con la biblioteca requests
:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
En este ejemplo, enviamos una solicitud POST con algunos datos de formulario al servicio de pruebas httpbin.org e imprimimos el código de estado de respuesta y el contenido.
Manejo de parámetros de consulta
A veces, es necesario incluir parámetros de consulta en las solicitudes. La biblioteca requests
facilita esta tarea al permitirle pasar parámetros como un diccionario:
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
En este ejemplo, incluimos parámetros de consulta en una solicitud GET e imprimimos la URL final con los parámetros incluidos.
Trabajar con encabezados
Es posible que necesites incluir encabezados personalizados en tus solicitudes, por ejemplo, para la autenticación o para especificar tipos de contenido. A continuación, te indicamos cómo agregar encabezados a tus solicitudes:
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
En este ejemplo, incluimos un encabezado de autorización en la solicitud a la API de GitHub e imprimimos el código de estado y el contenido de la respuesta.
Manejo de tiempos de espera y excepciones
Es importante gestionar posibles problemas, como tiempos de espera de red y otras excepciones. La biblioteca requests
permite especificar tiempos de espera y detectar excepciones:
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://httpbin.org/delay/5', timeout=3)
response.raise_for_status()
print(response.status_code)
print(response.text)
except RequestException as e:
print(f'An error occurred: {e}')
En este ejemplo, establecemos un tiempo de espera para la solicitud y capturamos cualquier excepción que ocurra, imprimiendo un mensaje de error si algo sale mal.
Conclusión
La biblioteca requests
es una herramienta potente y fácil de usar para realizar solicitudes HTTP en Python. Ya sea que esté recuperando datos de las API, enviando formularios o manejando encabezados personalizados, la biblioteca requests
facilita la realización de estas tareas con solo unas pocas líneas de código. Si domina los conceptos básicos que se tratan en este artículo, estará bien equipado para interactuar con servicios web y API en sus proyectos de Python.