Convertidor de cURL a Fetch
Convierte comandos cURL a código JavaScript fetch() API. Analiza banderas curl: -X (método), -H (encabezados), -d/--data (cuerpo), --json, -u (autenticación básica), --data-urlencode, -G (GET con datos) y más.
Examples:
Cómo usar Convertidor de cURL a Fetch
- 1Pega tu comando cURL en el campo de entrada.
- 2La herramienta analiza automáticamente todas las banderas y opciones de curl.
- 3Se genera código JavaScript fetch() con encabezados, método y cuerpo equivalentes.
- 4Copia el código fetch directamente en tu proyecto JavaScript.
ZenovayAnalytics
Ve quién está en tu sitio ahora mismo.
- Seguimiento de visitantes en tiempo real
- Privacidad primero, sin aviso de cookies
- Configurado en dos minutos
Herramientas relacionadas
Formateador y Validador JSON
Formatea, valida y embellece datos JSON con resaltado de sintaxis y detección de errores.Decodificador JWT
Decodifica e inspecciona tokens JWT. Consulta el encabezado, la carga útil y verifica firmas.Base64 Codificar/Decodificar
Codifica texto a Base64 o decodifica Base64 a texto. Soporta UTF-8 y datos binarios.Codificador/Decodificador de URL
Codifica o decodifica componentes de URL. Maneja caracteres especiales, cadenas de consulta y URLs completas.Preguntas frecuentes
¿Qué indicadores de curl admite este convertidor?▾
-X / --request: método HTTP (GET, POST, PUT, PATCH, DELETE, etc.). -H / --header: Añadir encabezado de solicitud (múltiples admitidos). -d / --data / --data-raw: Cuerpo de la solicitud. --data-urlencode: Datos codificados en URL. --json: Enviar cuerpo JSON (establece Content-Type automáticamente). -u / --user: Autenticación básica (usuario:contraseña). -L / --location: Seguir redirecciones (incluido como comentario). --compressed: Aceptar respuestas comprimidas. -b / --cookie: Encabezado Cookie. --form / -F: Datos de formulario (multiparte). -k / --insecure: Omitir verificación SSL (indicado como comentario).
¿Cómo funciona -d/--data en curl frente a fetch?▾
En curl, -d envía datos como cuerpo de la solicitud con Content-Type: application/x-www-form-urlencoded por defecto. Múltiples indicadores -d concatenan datos con &. En fetch, el equivalente es body: "clave=valor&otro=val" con un encabezado Content-Type correspondiente. Si usa --json en curl (curl 7.82 o superior), establece Content-Type: application/json y envía el cuerpo JSON — esto se corresponde con body: JSON.stringify(data) en fetch. Si su curl ya incluye -H "Content-Type: application/json", el convertidor lo detecta y formatea el cuerpo en consecuencia.
¿Cómo se convierte la autenticación básica (-u usuario:contraseña)?▾
curl -u usuario:contraseña envía autenticación básica HTTP. En JavaScript fetch, esto se corresponde con un encabezado Authorization: Authorization: Basic {base64(usuario:contraseña)}. El convertidor genera btoa("usuario:contraseña") en el código fetch. Nota: insertar credenciales en código del lado del cliente no es seguro — en producción, pase las credenciales del lado del servidor o use variables de entorno.
¿Qué pasa con las cookies (-b/--cookie)?▾
curl -b "nombre=valor; otro=val" envía cookies como encabezado Cookie, que se corresponde directamente con un encabezado fetch: "Cookie": "nombre=valor; otro=val". Sin embargo, tenga en cuenta que fetch en el navegador no puede establecer el encabezado Cookie para solicitudes de origen cruzado (restricciones CORS). Esta es una característica de seguridad — las cookies para solicitudes de origen cruzado son gestionadas automáticamente por el navegador según el dominio y la configuración de SameSite de la cookie.
¿Por qué el código fetch generado podría necesitar ajustes manuales?▾
curl tiene muchos indicadores sin equivalentes directos en fetch: --retry (no hay reintento nativo en fetch), --max-time/--connect-timeout (requiere AbortController con setTimeout), --proxy (no compatible con fetch en el navegador), --cert/--key (certificados TLS de cliente, no disponibles en fetch del navegador). El convertidor maneja los indicadores más comunes. En casos extremos, puede necesitar envolver fetch con lógica de reintento o usar una biblioteca HTTP de Node.js como axios o got, que admite más opciones.