Referencia técnica y guía de arquitectura

Hoja de referencia de cURL a Python Requests, httpx y aiohttp — Guía de referencia

Transforma comandos cURL en código Python idiomático con requests, httpx asíncrono y aiohttp. Limpieza de cabeceras DevTools y privacidad total.

Parámetros clave y controles

rawCurlstring

Comando cURL sin procesar de terminal o DevTools.

Por defecto: Auto
wrapInFunctionboolean

Envuelve la petición en una función o corrutina async def.

Por defecto: true
cleanDevToolsboolean

Elimina pseudocabeceras de navegador (:authority) que provocan errores en Python.

Por defecto: true
jsonAsDictboolean

Convierte el JSON a diccionario nativo de Python para el argumento json=.

Por defecto: true

Consejos profesionales y mejores prácticas

Limpiar pseudocabeceras de DevTools (:authority)

Las cabeceras con dos puntos (:) copiadas de Chrome generan excepciones InvalidHeader en Python. Mantén activa la limpieza automática.

Utilizar el argumento json= de requests

Al pasar json=payload a requests o httpx, se establece automáticamente la cabecera Content-Type y la serialización UTF-8.

Reutilizar conexiones con requests.Session()

Si realizas varias llamadas al mismo servidor, una Session mantendrá abiertas las conexiones TCP y gestionará las cookies.

Errores comunes y solución de problemas

Error InvalidHeader: Invalid leading colon in header name

Habilita la opción de limpiar cabeceras DevTools para eliminar :authority y :path del diccionario.

Respuesta 415 Unsupported Media Type

Asegúrate de enviar los datos mediante json=data en vez de data=cadena para que la cabecera JSON sea correcta.

Preguntas frecuentes (FAQ)

¿Cuál es la diferencia entre requests y httpx?▼

requests es síncrono y el estándar general en scripts. httpx ofrece compatibilidad total con corrutinas async/await (FastAPI) y HTTP/2.

¿Cómo se convierten booleanos y valores nulos?▼

true pasa a True, false a False y null se traduce como None.

¿Cómo se traducen subidas de archivos (-F file=@path)?▼

Se mapean al parámetro files={'file': open('path', 'rb')} con límites multipart automáticos.

¿Se almacenan mis credenciales en algún servidor?▼

Nunca. Toda la conversión se procesa localmente en tu navegador.

Herramientas y utilidades relacionadas

Todas las herramientas →