cURL a código

Pega un comando curl, comprueba la petición que envía y cópiala como código en siete lenguajes.

El análisis y la generación de código ocurren en esta pestaña del navegador. No se sube, se guarda ni se envía nada, ni siquiera a nosotros.

Pega un comando curl arriba para ver el resumen de la petición y el código.

Cómo se usa

  1. Pega un comando curl, desde DevTools (Copiar como cURL), la documentación de una API o un chat. El código aparece mientras escribes.
  2. Lee primero la línea de resumen: método, URL, número de cabeceras y tamaño del cuerpo. Si el resumen es correcto, el código de abajo también lo es.
  3. Elige el lenguaje de destino; el código y el nombre del archivo descargado cambian sin tocar tu comando.
  4. Los avisos señalan todo lo que el código no representa: proxies, redirecciones, variables de shell. Los errores detienen la generación en lugar de mostrar media petición.
  5. Restablecer borra la entrada y vuelve a Python; recargar la página hace lo mismo.

Ejemplo

Comando

curl -X POST 'https://httpbin.org/anything?from=es' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer demo-token' \
  -d '{"nombre": "Ana", "ciudad": "Madrid"}'

Python

import requests

url = "https://httpbin.org/anything?from=es"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer demo-token",
}
data = "{\"nombre\": \"Ana\", \"ciudad\": \"Madrid\"}".encode("utf-8")
response = requests.request("POST", url, headers=headers, data=data)
print(response.status_code)
print(response.text)

El resumen y el código anteriores se generan a partir de ese comando: esta herramienta nunca llama a httpbin. El subconjunto admitido es método, URL, cabeceras, cuerpo, autenticación Basic/Bearer y tiempo de espera.

Reglas, límites y problemas conocidos

  • Sin carga de archivos: las entradas -F, -T y @archivo se rechazan, así que nunca obtienes código que descarte un archivo en silencio.
  • Sin ejecución de shell: las variables, la sustitución de comandos, las tuberías y los comandos múltiples no se expanden; $TOKEN se queda literal con un aviso.
  • Una URL por comando: las URL adicionales se ignoran con un aviso, no se convierten en un bucle.
  • Las opciones de transporte no se reproducen: -L, -k, los proxies, los certificados de cliente, las versiones HTTP, los reintentos y la compresión solo generan un aviso. El código generado usa los valores por defecto de su cliente.
  • Sin los valores por defecto implícitos de curl: no se añaden User-Agent: curl/… ni Accept: */*; fíjalos con -A / -H.
  • Solo comillas POSIX: comillas simples, comillas dobles, $'...' y continuaciones de línea con barra invertida; el escapado de Windows CMD no se analiza.
  • Las cabeceras duplicadas sobreviven en Go, PHP, Java, C# y Ruby; los diccionarios de Python y JavaScript las fusionan con ", ".
  • Una petición GET/HEAD con cuerpo se genera tal como se escribió, con un aviso: fetch la rechaza.
  • Sin historial ni persistencia: recargar lo borra todo; el botón de compartir comparte el enlace de la página, nunca tu comando.
  • Esta herramienta solo convierte; nunca envía la petición. Usa el cliente de API si además quieres ver la respuesta.

Útiles después de convertir un comando.