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.