Cole um comando cURL à esquerda e clique em "Converter" — vamos transformá-lo em XMLCole um comando cURL

O que esta ferramenta faz

Se você já gravou uma chamada HTTP no Chrome DevTools, clicou em "Copy as cURL" e depois precisou mandar aquela mesma requisição para um fornecedor SOAP ou um test harness focado em XML, sabe o drama — você senta e reestrutura manualmente cabeçalhos e o corpo JSON em elementos XML. Esta ferramenta pula essa parte. Cole o comando cURL como está, com continuações de linha em barra invertida e tudo, e você recebe um único documento XML bem formado descrevendo a requisição inteira: método, URL, parâmetros de consulta, cabeçalhos, autenticação e corpo.

O parser entende as flags que você realmente usa no dia a dia — -X para o método, -H para cada cabeçalho, -d/--data para o corpo, -u para basic auth, -b para cookies, e as continuações barra invertida + newline que o curl(1) usa para comandos multi-linha legíveis. Argumentos entre aspas simples e duplas são ambos tratados, e as query strings da URL são separadas em seu próprio bloco <QueryParams> para você ver cada parâmetro na sua própria linha.

Se a requisição carrega um corpo JSON, ele é embutido como um elemento <Body> aninhado — cada campo do payload JSON vira seu próprio elemento XML, preservando a forma (objetos aninham, arrays repetem). Corpos form-urlencoded são quebrados em pares chave/valor. Qualquer coisa que o cURL não reconheça — um --compressed ocasional, um -k, ou uma flag que você passou — é coletada em um bloco <Options> para nada ser silenciosamente descartado. O resultado é um documento XML que você pode alimentar num cliente SOAP, commitar como fixture de teste, ou colar na documentação.

Como usar

Três passos. Funciona igual quer o cURL seja uma linha só ou vinte linhas com continuações em barra invertida.

1

Cole o cURL (ou experimente o exemplo)

Jogue seu comando cURL no editor da esquerda. Deixe as continuações \ onde estão, mantenha as aspas simples ao redor do corpo e não tire nenhuma flag. Clique em Carregar exemplo se quiser ver primeiro um caso HTTP realista.

Chrome, Firefox e Safari têm todos uma opção "Copy as cURL" / "Copy as cURL (bash)" no painel Network — essa saída cola sem problemas. O "Code snippets → cURL" do Postman também funciona.

2

Clique em Converter

Clique no botão verde Converter. A ferramenta faz parsing do comando, extrai método, URL, query string, cabeçalhos, autenticação e corpo, e monta o XML numa passada só. Você verá um breve indicador de carregamento enquanto roda.

3

Copie o XML

O painel da direita se enche com XML indentado e bem formado que qualquer ferramenta consciente de HTTP ou parser XML conforme os padrões vai aceitar. Copie direto para uma requisição SOAP, uma fixture de teste ou a doc da sua API.

Quando isso realmente ajuda

Gerar envelope SOAP a partir de uma gravação do DevTools

Você gravou uma chamada REST no navegador, mas o fornecedor a jusante ainda fala SOAP. Cole o cURL e use o XML resultante como ponto de partida para o corpo do envelope — método, URL e forma do payload já estão dispostos.

Fixtures de teste para ferramentas XML

SoapUI, ReadyAPI e kits de teste corporativos mais antigos querem arquivos XML de entrada. Converta um cURL que funciona em XML uma vez e commite como fixture em vez de manter à mão dois formatos paralelos.

Integrações com fornecedores corporativos legados

APIs de parceiros que ainda rodam em WSDL/SOAP ou gateways XML não vão aceitar scripts cURL. Entregar a eles uma requisição XML que possam carregar direto do lado deles economiza uma ida e volta do tipo "o que seu endpoint realmente espera".

Documentação de API e snippets

Você quer que seu README mostre a mesma requisição em duas formas — cURL para devs, XML para o time de ops que revisa o tráfego. Gere o XML a partir do cURL uma vez e mantenha os dois sincronizados.

Perguntas frequentes

Quais flags do cURL são suportadas?

As comuns: -X/--request para o método HTTP, -H/--header para cada cabeçalho (repita quantas vezes quiser), -d/--data/--data-raw/--data-binary para o corpo da requisição, -u/--user para basic auth, e -b/--cookie para cookies. A referência completa de flags está em curl.se/docs/manpage.html se você quiser consultar algo.

Ele lida com continuações multi-linha com barra invertida?

Sim. O \ no fim de uma linha seguido de quebra é tratado como continuação — exatamente do jeito que bash e cURL veem. Cole o comando do jeito que saiu do DevTools ou do histórico do seu terminal. Não precisa juntar tudo numa linha só antes.

O que acontece com um corpo JSON de requisição?

Um corpo JSON (content-type application/json ou só um payload -d '{...}' que parseia como JSON) é embutido como XML aninhado dentro de um elemento <Body> — cada campo vira seu próprio elemento, objetos aninham e arrays repetem. A gramática JSON segue a RFC 8259, e a forma é preservada um-para-um na saída XML.

E corpos URL-encoded ou de formulário?

Um corpo application/x-www-form-urlencoded (por ex. -d 'user=ava&pwd=x') é quebrado em elementos chave/valor individuais dentro de <Body>. Parâmetros de query string na própria URL são extraídos para um elemento <QueryParams> separado para você ver cada parâmetro com clareza. Corpos multipart (-F) são representados como um elemento por parte com o nome do campo e seu valor.

Posso colar a saída do "Copy as cURL" do Chrome ou Firefox?

Pode — esse é o caso de uso principal. "Copy as cURL (bash)" do Chrome, "Copy as cURL" do Firefox e "Copy as cURL" do Safari colam todos limpinhos. O parser ignora as diferenças de estilo de aspas. A saída do snippet cURL do Postman também funciona.

E se meu cURL tiver uma flag que o parser não reconhece?

Flags desconhecidas ou exóticas (--compressed, -k, --resolve, flags longas customizadas) são coletadas num bloco <Options> no fim do XML, em vez de serem jogadas no chão. Assim você vê exatamente o que havia no comando original e decide como representar no lado que recebe.

Outras ferramentas que podem te servir

cURL para XML é uma peça do quebra-cabeça. Estas ferramentas combinam bem: