TK TaskKit
Herramientas para desarrolladores

cURL ↔ fetch

Convierte comandos cURL a llamadas JavaScript fetch() y viceversa, en tu navegador.

Entrada
Salida
Pega un comando a la izquierda y mira la forma convertida a la derecha.

Las entradas se quedan en este dispositivo. Cada herramienta para desarrolladores en TaskKit corre por completo en tu navegador. Tokens, payloads y texto pegado no se transmiten ni a TaskKit ni a terceros.

Qué hace esta herramienta

Convierte entre comandos cURL y llamadas fetch de JavaScript en ambas direcciones. Preserva:

  • Método-X POST, -X PUT, etc., o explícito en la opción method de fetch.
  • Headers-H "Content-Type: application/json"headers: { ... }.
  • Body-d '{"k":"v"}'body: "...". Soporta JSON, form-urlencoded y texto plano.
  • Auth básica-u user:pass ↔ header Authorization: Basic ....
  • Cookies-b y --cookie ↔ header Cookie.
  • URL — incluyendo query strings.

Cuándo la usarías

  • Tu DevTools muestra una petición y quieres reproducirla en curl para depurar fuera del navegador.
  • Una doc te da un comando curl y quieres ejecutarlo dentro de tu app JS.
  • Estás convirtiendo un cliente curl-based a una librería fetch nativa.
  • Pegar un fetch largo y obtener algo que un colega pueda ejecutar en su shell.

Cómo funciona

La dirección curl → fetch usa un parser que entiende los flags más comunes de curl (-X, -H, -d, -u, -b, --data-urlencode, --data-binary, -F parcial). Las opciones que no afectan al equivalente fetch (-v, --insecure, -o file.json) se ignoran.

La dirección fetch → curl analiza la cadena fetch con coincidencia de patrones — busca el primer argumento URL, el objeto opciones y campos comunes. NO es un parser JS completo, así que template literals y expresiones complejas no se manejan; usa literales de string para máxima compatibilidad.

Todo en local. Pega un comando curl con una API key y la API key se queda en la pestaña.

Notas

¿-F (form upload)? Se reconoce parcialmente — los campos simples name=value se convierten a un FormData. Los uploads de archivo (@file.txt) no se traducen porque fetch necesita un Blob real.

¿Y --compressed? Fetch lo hace por defecto en navegador moderno; lo ignoramos.

¿Cookie jars persistentes? No. Cada conversión es una petición única; las cookies que añades aparecen como header Cookie literal.

¿HTTP/2 push o WebSockets? No — esto es solo HTTP/1.1 cliente sencillo. Para protocolos especiales, usa la herramienta nativa.

Herramientas relacionadas

  • HTTP Status — para entender el código que devuelve la petición
  • Codificador URL — para escapar query params dinámicos
  • JSON — para formatear el body que envías o recibes