tigtools

Conversor de cURL para código

Cole um comando curl, por exemplo copiado das ferramentas de desenvolvedor do navegador ou de uma documentação de API, e obtenha código equivalente na sua linguagem.

Executado no seu navegador Sem cadastro

Idioma

Como usar

  1. Copie uma requisição como curl, por exemplo das ferramentas de desenvolvedor do navegador (aba Rede, clique com o botão direito, Copiar como cURL) ou da documentação da API.
  2. Cole no campo. Continuações de linha com \ são aceitas.
  3. Escolha JavaScript fetch, Node.js axios, Python requests ou PHP cURL.
  4. Leia as observações abaixo do código e copie ou baixe o resultado.

Como funciona

O conversor primeiro divide o comando em palavras da mesma forma que um shell POSIX faz: aspas simples, aspas duplas com escapes de barra invertida, strings $'…' e continuações de linha com barra invertida são reconhecidas. Variáveis de shell como $TOKEN não são expandidas; permanecem como texto.

Opções curl suportadas: a URL (ou --url), -X/--request, -H/--header, -d/--data, --data-ascii, --data-raw, --data-binary, --data-urlencode, --json, -F/--form e --form-string (campos e uploads @file com ;type=), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (strings de cookie), -L/--location e --compressed. Opções curtas podem ser combinadas, como em -sSL, e valores podem ser anexados, como em -XPOST.

As regras seguem o curl: vários valores -d são unidos com &; os dados tornam a requisição um POST, a menos que -X ou -G indique o contrário; -G anexa os dados à URL como uma string de consulta; --json define os cabeçalhos Content-Type e Accept como application/json. Quando o corpo é JSON e o Content-Type indica isso, o código envia um objeto real (json= em Python, um array com json_encode em PHP) em vez de uma string escapada. Para formulários multipart, o cabeçalho Content-Type é deixado para a biblioteca para que o boundary fique correto.

-k/--insecure é ignorado de propósito e uma nota explica isso. Opções que apenas alteram a saída do próprio curl (-s, -S, -v, -i, -o, --fail e similares) são ignoradas com uma nota. Qualquer outra opção produz um erro claro indicando o nome dela, em vez de gerar código que faz algo diferente silenciosamente. Uma diferença permanece: o curl segue redirecionamentos somente com -L, enquanto fetch, axios e requests os seguem por padrão; o código PHP os segue somente quando -L é usado.

A ferramenta apenas escreve código. Ela nunca envia a requisição, portanto tokens e senhas no comando não são usados em lugar nenhum.

Exemplos

Reproduzindo uma requisição do navegador em Python

Copie uma chamada de API com falha na aba Rede do Chrome como cURL e converta em Python requests. Os cabeçalhos, cookies e corpo JSON vêm junto, então você pode reproduzir o bug em um script.

Usando documentação de API no Node.js

Uma referência de API mostra “curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur”. A versão com axios usa auth: { username: "key", password: "" } e um corpo codificado como formulário.

Upload de arquivo em PHP

“curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload” vira CURLOPT_POSTFIELDS com new CURLFile('invoice.pdf', 'application/pdf') e o campo note.

Perguntas frequentes

Esta ferramenta envia minha requisição?

Não. Ela apenas analisa o texto do comando e gera o código. Nenhuma requisição é feita, então chaves de API ou cookies presentes no comando não são usados nem armazenados.

Por que -k/--insecure não é convertido?

Desativar a verificação de certificados deixa a conexão sujeita a interceptação. O código gerado mantém as verificações ativas; se o certificado de um servidor não for confiável, corrija o certificado ou o repositório de certificados confiáveis.

Por que recebo “opção não suportada”?

O conversor só traduz opções cujo significado consegue reproduzir exatamente. Proxies, certificados de cliente, cookie jars e opções semelhantes são rejeitados para que você não receba código com comportamento diferente do curl.

Funciona com comandos do Windows cmd?

Comandos copiados como “cURL (bash)” funcionam melhor. O Windows cmd usa ^ para continuação de linha e aspas diferentes; ^ no fim da linha é aceito, mas outros escapes do cmd podem não ser.

Privacidade

O comando é analisado somente no seu navegador e nenhuma requisição é enviada. Nada é enviado, armazenado ou incluído em análises.