Creador de Comandos curl
Genera un comando curl real y funcional a partir de un método HTTP, URL, cabeceras, cuerpo y opciones de autenticación — con el entrecomillado correcto del shell aplicado automáticamente — y cópialo con un solo clic.
236 visitas
Breve Historia de curl
curl fue creado en 1998 por el desarrollador sueco Daniel Stenberg, que escribió su primera versión para obtener automáticamente tipos de cambio de divisas para un bot de IRC en un canal de chat sueco — un pequeño capricho personal, no un gran plan para construir infraestructura. La gente siguió pidiendo más protocolos y más opciones, y esa pequeña utilidad se convirtió en una herramienta de línea de comandos de propósito general para transferir datos por HTTP, HTTPS, FTP y, con el tiempo, docenas de otros protocolos. Stenberg ha seguido siendo el mantenedor principal de curl prácticamente durante toda su existencia; hoy en día curl viene incluido por defecto en macOS, en prácticamente todas las distribuciones de Linux y, desde 2018, en Windows 10 y versiones posteriores, y se estima que se ejecuta en miles de millones de dispositivos en todo el mundo, desde routers y coches hasta consolas de videojuegos y casi todos los pipelines de integración continua que hablan con una API. Lo que empezó como una solución a un problema personal muy concreto es hoy, posiblemente, el cliente HTTP de línea de comandos más ampliamente utilizado que existe, y una de las piezas de software de código abierto de las que más silenciosamente depende internet.
Cómo Leer las Opciones que Genera esta Herramienta
Por defecto, curl no sigue las redirecciones HTTP. Si un servidor responde con un estado 301 o 302 y una cabecera Location que apunta a otro lugar, curl sin más opciones imprime esa respuesta de redirección —o un cuerpo vacío— y se detiene; no persigue automáticamente la nueva URL como lo hace silenciosamente un navegador web. Esto confunde a una enorme cantidad de usuarios primerizos de curl: una URL que funciona perfectamente en un navegador devuelve una respuesta confusa, vacía o incorrecta desde curl, sin motivo aparente, simplemente porque el navegador siguió una redirección que curl no siguió. La solución es la opción -L (--location), que le indica a curl que siga la cadena de redirecciones hasta su destino final. Es un requisito tan habitual que muchos desarrolladores usan -L por defecto siempre que no estén probando deliberadamente el comportamiento de las redirecciones en sí.
En cuanto un comando incluye cabeceras o contenido en el cuerpo con espacios, comillas o caracteres especiales del shell ($, &, ;, comillas invertidas), la forma de entrecomillarlo deja de ser algo cosmético — marca la diferencia entre una petición que funciona y otra que el shell destroza antes de que curl llegue a verla siquiera. Una cabecera como Authorization: Bearer abc 123 escrita sin comillas es dividida por el shell en el espacio, así que curl recibe Authorization: y Bearer como dos argumentos separados y rotos en lugar de uno solo. Envolver todo el valor entre comillas simples le indica al shell que trate todo lo de dentro literalmente, incluidos los espacios — pero las comillas simples no pueden contener a su vez un carácter de comilla simple literal, ya que ese carácter es precisamente el que cierra la comilla. La forma estándar de resolverlo es cerrar la comilla, insertar una comilla simple escapada con barra invertida y volver a abrir la comilla: '\''. Esta herramienta aplica ese escape automáticamente a cada valor que inserta, de modo que las cabeceras, el contenido del cuerpo y las credenciales de autenticación que contienen espacios, comillas u otros caracteres especiales siempre generan un comando que se ejecuta correctamente — sin que tengas que memorizar tú mismo las reglas de escape.
Preguntas Frecuentes
¿Por qué necesito la opción -L en algunos comandos curl?
curl no sigue las redirecciones HTTP por defecto. Si el servidor al que llamas responde con un estado 301 o 302 y una cabecera Location, curl sin más opciones te muestra esa respuesta de redirección en lugar del contenido final y se detiene ahí. Los navegadores siguen las redirecciones silenciosamente, por eso una URL que "funciona en el navegador" puede devolver una respuesta vacía o inesperada desde curl. Añadir -L (--location) le indica a curl que siga automáticamente la cadena de redirecciones hasta llegar al destino final.
¿Por qué falla mi comando curl cuando una cabecera tiene un espacio?
Es el shell —no curl— el que divide una línea de comandos en argumentos separados, y por defecto divide en los espacios sin entrecomillar. Un valor de cabecera como Bearer abc123 escrito sin comillas se convierte en dos palabras separadas que el shell entrega a curl como si fueran dos argumentos distintos, rompiendo la cabecera. Envolver el valor entre comillas simples le dice al shell "trata todo lo de dentro como una sola pieza literal, espacios incluidos", que es exactamente lo que esta herramienta hace automáticamente por cada campo que rellenas.
¿Cuál es la diferencia entre el modo JSON y el modo Raw para el cuerpo de la petición?
El modo JSON añade automáticamente una cabecera Content-Type: application/json junto con tu cuerpo, indicándole al servidor que interprete los datos como JSON — la mayoría de las API modernas exigen que esta cabecera esté presente o rechazarán o malinterpretarán la petición. El modo Raw envía exactamente el texto que escribiste sin asumir ningún tipo de contenido, lo cual es la opción correcta para datos codificados como formulario, texto plano, XML, o cualquier cuerpo en el que quieras establecer tu propia cabecera Content-Type manualmente en la sección de cabeceras.
¿La autenticación con token Bearer es lo mismo que la autenticación Basic?
No, funcionan de forma distinta. La autenticación Bearer envía una cabecera Authorization: Bearer <token> que transporta un token de acceso opaco, típicamente emitido por un flujo OAuth o un sistema de claves de API — el servidor busca el token en lugar de decodificarlo. La autenticación Basic envía Authorization: Basic <base64(usuario:contraseña)>, que es simplemente tu usuario y tu contraseña unidos y codificados en base64 — la codificación no es cifrado, así que la autenticación Basic solo debe usarse por HTTPS, nunca por HTTP sin cifrar, o las credenciales se envían prácticamente en texto claro.
¿Quién creó curl, y sigue manteniéndose activamente?
curl fue creado en 1998 por Daniel Stenberg, originalmente para obtener tipos de cambio de divisas para un bot de IRC. Stenberg ha seguido siendo su mantenedor principal durante prácticamente toda la historia de curl y sigue desarrollándolo activamente hoy en día. Lejos de ser un proyecto de aficionado, curl es hoy una de las piezas de software más ampliamente distribuidas del mundo —integrada en sistemas operativos, dispositivos embebidos e innumerables aplicaciones— y su seguridad y su corrección se tratan con la seriedad correspondiente gracias a una gran comunidad de colaboradores.
Herramientas Similares
Reportar un Problema
Creador de Comandos curl
Comentarios
Aún no hay comentarios — ¡sé el primero en escribir uno!