Cómo enviar peticiones HTTP con requests en Python

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Instalación y configuración de la librería requests

La librería requests no viene incluida en la instalación estándar de Python, por lo que debes instalarla por separado. Ejecuta el siguiente comando en tu terminal:

pip install requests

Para verificar que la instalación fue exitosa, ejecuta:

import requests
print(requests.__version__)

¿Qué son las peticiones HTTP y por qué usar la librería requests?

HTTP (HyperText Transfer Protocol) es el protocolo de transferencia de datos entre un cliente y un servidor. requests es una librería externa de Python que simplifica enormemente el envío de peticiones HTTP en comparación con el módulo integrado urllib.

Principales ventajas de requests

  • Simplicidad de uso y código más legible
  • Soporte para todos los métodos HTTP (GET, POST, PUT, DELETE, PATCH)
  • Manejo automático de datos JSON
  • Soporte integrado para cookies y sesiones
  • Configuración flexible de cabeceras y parámetros
  • Gestión de errores y excepciones
  • Soporte para servidores proxy y certificados SSL

Métodos HTTP principales con ejemplos prácticos

Peticiones GET: obtener datos

La petición GET se usa para obtener datos del servidor sin modificarlos.

import requests

# Petición GET simple
response = requests.get('https://api.github.com')
print(response.status_code)  # 200
print(response.text)         # Contenido de la respuesta

Pasar parámetros en una petición GET

# Pasar parámetros mediante un diccionario
params = {
    'q': 'python',
    'sort': 'stars',
    'order': 'desc',
    'page': 1
}

response = requests.get('https://api.github.com/search/repositories', params=params)
print(response.url)  # Verificamos la URL final con los parámetros

Peticiones POST: enviar datos

La petición POST se usa para enviar datos al servidor y crear nuevos recursos.

# Petición POST con datos de formulario
data = {
    'username': 'usuario_prueba',
    'password': 'contraseña_segura',
    'email': 'test@example.com'
}

response = requests.post('https://httpbin.org/post', data=data)
print(response.json())

Petición POST con datos JSON

# Envío de datos JSON
json_data = {
    'title': 'Nuevo artículo',
    'body': 'Contenido del artículo',
    'userId': 1
}

response = requests.post(
    'https://jsonplaceholder.typicode.com/posts',
    json=json_data
)
print(response.json())

Peticiones PUT: actualizar datos

La petición PUT se usa para actualizar completamente un recurso existente.

update_data = {
    'id': 1,
    'title': 'Título actualizado',
    'body': 'Nuevo contenido',
    'userId': 1
}

response = requests.put(
    'https://jsonplaceholder.typicode.com/posts/1',
    json=update_data
)
print(f"Estado: {response.status_code}")
print(response.json())

Peticiones PATCH: actualización parcial

PATCH se usa para actualizar parcialmente un recurso.

patch_data = {'title': 'Título actualizado parcialmente'}

response = requests.patch(
    'https://jsonplaceholder.typicode.com/posts/1',
    json=patch_data
)
print(response.json())

Peticiones DELETE: eliminar datos

La petición DELETE se usa para eliminar recursos en el servidor.

response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(f"Estado de eliminación: {response.status_code}")

Trabajar con cabeceras HTTP

Las cabeceras contienen metadatos sobre la petición y permiten enviar información adicional al servidor.

headers = {
    'User-Agent': 'Mozilla                

Blogs

Book Recommendations