Conversor cURL a XML
Pega un comando cURL. Obtén XML limpio a cambio.
Qué hace esta herramienta
Si alguna vez has grabado una llamada HTTP en las DevTools de Chrome, has pulsado "Copy as cURL" y luego has necesitado enviar esa misma petición a un proveedor SOAP o a un banco de pruebas centrado en XML, ya conoces el ritual — te sientas a reestructurar manualmente cabeceras y cuerpo JSON en elementos XML. Esta herramienta se salta ese paso. Pega el comando cURL tal cual, con sus continuaciones de línea con barra invertida y todo, y obtienes un único documento XML bien formado que describe la petición completa: método, URL, parámetros de consulta, cabeceras, autenticación y cuerpo.
El parser entiende las banderas que usas a diario — -X para el método, -H para cada cabecera, -d/--data para el cuerpo, -u para autenticación básica, -b para cookies, y las continuaciones de barra invertida + salto de línea que curl(1) usa para comandos multilínea legibles. Se manejan tanto argumentos entre comillas simples como dobles, y las cadenas de consulta de la URL se separan en su propio bloque <QueryParams> para que veas cada parámetro en su propia línea.
Si la petición lleva un cuerpo JSON, se empotra como un elemento <Body> anidado — cada campo del payload JSON se convierte en su propio elemento XML, conservando la forma (los objetos se anidan, los arrays se repiten). Los cuerpos form-urlencoded se desglosan en pares clave/valor. Cualquier cosa que cURL no reconozca — algún --compressed, -k ocasional, o una bandera que hayas pasado — se recoge en un bloque <Options> para que nada se pierda en silencio. El resultado es un documento XML que puedes meter en un cliente SOAP, dejar como fixture de pruebas o pegar en la documentación.
Cómo usarla
Tres pasos. Funciona igual si el cURL es una sola línea o veinte con continuaciones de barra invertida.
Pega el cURL (o prueba el ejemplo)
Suelta tu comando cURL en el editor de la izquierda. Deja las continuaciones \ donde están, mantén las comillas simples alrededor del cuerpo y no quites ninguna bandera. Pulsa Cargar ejemplo si prefieres ver primero un caso HTTP realista.
Chrome, Firefox y Safari tienen la opción "Copy as cURL" / "Copy as cURL (bash)" en su panel Network — esa salida se pega sin problemas. Postman también tiene "Code snippets → cURL" y funciona igual.
Pulsa Convertir
Pulsa el botón verde Convertir. La herramienta parsea el comando, extrae método, URL, query string, cabeceras, autenticación y cuerpo, y construye el XML en una sola pasada. Verás un breve indicador de carga mientras trabaja.
Copia el XML
El panel derecho se llena con XML indentado y bien formado que cualquier herramienta consciente de HTTP o parser XML conforme al estándar aceptará. Cópialo directamente a una petición SOAP, a un fixture de pruebas o a tu documentación de API.
Cuándo viene realmente bien
Generar un sobre SOAP desde una grabación de DevTools
Grabaste una llamada REST en el navegador, pero el proveedor de aguas abajo todavía habla SOAP. Pega el cURL y usa el XML resultante como punto de partida para el cuerpo del sobre — método, URL y forma del payload ya están listos.
Fixtures de prueba para herramientas centradas en XML
SoapUI, ReadyAPI y los kits de pruebas empresariales más antiguos quieren archivos XML de entrada. Convierte un cURL que ya funciona a XML una vez y deja ese fixture en el repo en lugar de mantener a mano dos formatos paralelos.
Integraciones con proveedores empresariales heredados
APIs de partners que todavía corren sobre WSDL/SOAP o pasarelas XML no aceptarán scripts cURL. Darles una petición XML que puedan cargar directamente en su lado ahorra una ida y vuelta de "¿qué espera exactamente tu endpoint?".
Documentación de API y snippets
Quieres que tu README muestre la misma petición en dos formas — cURL para desarrolladores, XML para el equipo de ops que revisa el tráfico. Genera el XML desde el cURL una vez y mantenlos sincronizados.
Preguntas frecuentes
¿Qué banderas de cURL están soportadas?
Las habituales: -X/--request para el método HTTP, -H/--header para cada cabecera (repítelo tantas veces como quieras), -d/--data/--data-raw/--data-binary para el cuerpo de la petición, -u/--user para autenticación básica, y -b/--cookie para cookies. La referencia completa de banderas está en curl.se/docs/manpage.html si quieres mirar algo concreto.
¿Maneja continuaciones de línea con barra invertida multilínea?
Sí. La \ al final de una línea seguida de un salto de línea se trata como continuación — exactamente como bash y cURL lo interpretan. Pega el comando tal como salió de DevTools o de tu historial de terminal. No hace falta juntarlo en una sola línea primero.
¿Qué ocurre con un cuerpo JSON?
Un cuerpo JSON (content-type application/json o simplemente un payload -d '{...}' que parsea como JSON) se empotra como XML anidado dentro de un elemento <Body> — cada campo se convierte en su propio elemento, los objetos se anidan y los arrays se repiten. La gramática JSON sigue la RFC 8259, y la forma se conserva uno a uno en la salida XML.
¿Y los cuerpos URL-encoded o de formulario?
Un cuerpo application/x-www-form-urlencoded (por ejemplo -d 'user=ava&pwd=x') se desglosa en elementos clave/valor individuales dentro de <Body>. Los parámetros de la query string en la propia URL se extraen a un elemento <QueryParams> separado para que veas cada parámetro con claridad. Los cuerpos multipart (-F) se representan como un elemento por parte con el nombre del campo y su valor.
¿Puedo pegar la salida de "Copy as cURL" de Chrome o Firefox?
Sí — ese es el caso de uso principal. "Copy as cURL (bash)" de Chrome, "Copy as cURL" de Firefox y "Copy as cURL" de Safari se pegan sin problemas. El parser ignora las diferencias de estilo de comillas. La salida del snippet cURL de Postman también funciona.
¿Y si mi cURL tiene una bandera que el parser no reconoce?
Las banderas desconocidas o exóticas (--compressed, -k, --resolve, banderas largas personalizadas) se recogen en un bloque <Options> al final del XML en lugar de tirarse al suelo. Así ves exactamente qué había en el comando original y decides cómo representarlo en el lado receptor.
Otras herramientas que pueden interesarte
cURL a XML es una pieza del puzle. Estas herramientas combinan bien: