Convertidor de cURL a código
Pega un comando curl, por ejemplo uno copiado de las DevTools de tu navegador con Copy as cURL, y obtén el código equivalente para JavaScript fetch, Axios, Python requests, Node.js, PHP y Go. Se convierten los encabezados, los cuerpos JSON y de formulario, las subidas de archivos, las cookies y la autenticación básica.
Última actualización:
Cómo usar Convertidor de cURL a código
- Copia un comando curl: en las DevTools de Chrome, Edge o Firefox abre la pestaña Network, haz clic derecho en una solicitud y elige Copy as cURL, o tómalo de la documentación de una API.
- Pégalo en el recuadro. Los comandos de varias líneas con continuaciones
\o^funcionan bien. - Elige una pestaña de lenguaje: fetch, Axios, Python, Node.js, PHP o Go. El código se actualiza al instante.
- Revisa el resumen del método, la URL, los encabezados y el cuerpo, y lee los avisos sobre opciones no compatibles.
- Copia o descarga el código generado y añádelo a tu proyecto.
Cómo se traducen las opciones de curl a código
| curl | Significado | Python requests | JavaScript fetch |
|---|---|---|---|
-X PUT | Método HTTP | requests.put(...) | method: "PUT" |
-H 'Name: value' | Encabezado de la solicitud | headers={...} | headers: {...} |
-d 'a=1&b=2' | Cuerpo de formulario; implica POST y application/x-www-form-urlencoded | data='a=1&b=2' | body: "a=1&b=2" |
--json '{...}' | Cuerpo JSON más los encabezados JSON Content-Type y Accept | json={...} | body: JSON.stringify({...}) |
-F '[email protected]' | Subida de formulario multipart | files={...} | body: formData |
-G -d 'q=x' | Envía los datos como cadena de consulta con GET | se añade a la URL | se añade a la URL |
-u user:pass | Autenticación básica HTTP | auth=('user', 'pass') | Authorization: Basic … |
-b 'k=v' | Enviar cookies | cookies={...} | Encabezado Cookie |
-L | Seguir redirecciones | comportamiento predeterminado | comportamiento predeterminado |
-k | Omitir la verificación del certificado TLS | verify=False | no es posible en fetch |
-m 10 | Tiempo máximo en segundos | timeout=10 | signal: AbortSignal.timeout(10000) |
Reglas de comillas del shell que entiende el analizador
- Comillas simples
'...': conservan todo literalmente; es lo que usan los navegadores en “Copy as cURL (bash)”. - Comillas dobles
"...": admiten los escapes\",\\,\$y\`. Las variables del shell como$TOKENse mantienen como texto literal, así que sustitúyelas por valores reales o lecturas de variables de entorno en tu código. - Cadenas ANSI-C
$'...': decodifican\n,\t,\',\xHHy\uHHHH. Chrome las usa cuando un cuerpo contiene caracteres especiales. - Continuaciones de línea: una
\final (bash, zsh, macOS) o^(Windows cmd) une líneas. También se eliminan los escapes de Windows cmd como^".
Consejos para código en producción
Los comandos copiados de un navegador suelen incluir decenas de encabezados (sec-ch-ua, sec-fetch-*, accept-language) que el servidor no necesita. Prueba a quitarlos uno a uno; normalmente solo importan Authorization, Content-Type y quizá una cookie. Pasa los tokens y las cookies a variables de entorno, añade manejo de errores para códigos de estado distintos de 2xx y define un tiempo de espera para que un servidor lento no bloquee tu programa.
Preguntas frecuentes
¿Cómo copio una solicitud como curl desde mi navegador?
Abre las DevTools (F12), ve a la pestaña Network, recarga la página, haz clic derecho en la solicitud y elige Copy > Copy as cURL (bash). En Windows, Chrome también ofrece Copy as cURL (cmd); este convertidor entiende ambos formatos.
¿Qué opciones de curl se admiten?
Las habituales: -X/--request, -H/--header, -d/--data, --data-raw, --data-binary, --data-urlencode, --json, -F/--form, -G/--get, -u/--user, -b/--cookie, -A/--user-agent, -e/--referer, -I/--head, -L/--location, -k/--insecure, --compressed, -m/--max-time y --url. Las opciones sin equivalente, como proxies o archivos de salida, se muestran como avisos.
¿Por qué mi solicitud con -d se convierte en POST?
Así funciona curl: enviar datos con -d o -F hace que curl use POST y, con -d, el Content-Type application/x-www-form-urlencoded, salvo que definas otro. Usa -G para enviar los datos como cadena de consulta con GET, o -X para forzar un método.
¿Es seguro pegar comandos con tokens o cookies?
La conversión se hace completamente en tu navegador con JavaScript; no se envía nada a ningún servidor. Aun así, el código generado contendrá los mismos secretos, así que pasa los tokens a variables de entorno antes de hacer commit del código.
¿Por qué fetch en el navegador no puede enviar mi encabezado Cookie?
Los navegadores consideran Cookie, User-Agent (en algunos navegadores), Host y algunos otros encabezados como prohibidos para fetch y los descartan sin avisar. El código generado es correcto para Node.js 18+ y otros entornos del lado del servidor; en un navegador, usa credentials: 'include' y deja que el navegador envíe sus propias cookies.
¿Gestiona la subida de archivos?
Sí. -F '[email protected]' se convierte en FormData en JavaScript, un diccionario files en Python, CURLFile en PHP y un multipart writer en Go. Como el archivo está en tu computadora, el código hace referencia a la misma ruta.
¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?
Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.
Herramientas relacionadas
Ver todas las de Conversores de datos y formatos de archivo →