Skip to main content

Conversor de cURL para Código

Converta comandos cURL para código Python, JavaScript, Ruby e PHP. Cole seu comando cURL e obtenha código limpo e pronto para usar.

Ad (leaderboard)
Método
URL
Cabeçalhos
Corpo
Rate this tool
0.0 / 5 · 0 ratings

Embed This Calculator

Add this calculator to your website for free. Copy the single line of code below and paste it into your HTML. The calculator auto-resizes to fit your page.

<script src="https://calchammer.com/embed.js" data-calculator="curl-to-code-converter" data-category="everyday"></script>
data-theme "light", "dark", or "auto"
data-values Pre-fill inputs, e.g. "amount=1000"
data-max-width Max width, e.g. "600px"
data-border "true" or "false"
Or use an iframe instead
<iframe src="https://calchammer.com/embed/everyday/curl-to-code-converter" width="100%" height="500" style="border:none;border-radius:12px;" title="Curl To Code Calculator"></iframe>

Preview

yoursite.com/blog
Curl To Code Calculator auto-resizes here
Ad (in_results)

Como Usar o Conversor de cURL para Código

Cole um comando cURL na área de entrada, selecione a linguagem de programação alvo no menu suspenso e clique em Converter. A ferramenta analisa o comando cURL para extrair o método HTTP, URL, cabeçalhos e corpo da requisição, e então gera código equivalente usando a biblioteca HTTP padrão da linguagem selecionada. O painel de estatísticas mostra o método analisado, URL, contagem de cabeçalhos e se um corpo está presente. Use o botão Copiar para copiar o código gerado para a área de transferência.

Esta ferramenta é inestimável para desenvolvedores que testam APIs com cURL e depois precisam integrar essas requisições no código da sua aplicação. As ferramentas de desenvolvedor do navegador permitem copiar qualquer requisição de rede como um comando cURL, tornando fácil capturar uma requisição funcionando e convertê-la para código na linguagem de sua escolha.

Ad (in_content)

Entendendo Comandos cURL

cURL é o cliente HTTP de linha de comando mais amplamente usado, instalado por padrão em praticamente todos os sistemas operacionais. Um comando cURL consiste na palavra-chave curl seguida por uma URL e flags opcionais. A flag -X especifica o método HTTP (GET, POST, PUT, DELETE, etc.). A flag -H adiciona cabeçalhos de requisição como Content-Type e Authorization. A flag -d envia dados no corpo da requisição. A flag -u fornece credenciais de autenticação básica.

Quando nenhum método é explicitamente especificado, cURL usa GET por padrão. Quando a flag -d é usada sem -X, cURL automaticamente muda para POST. Esses comportamentos implícitos são preservados no código gerado, que define explicitamente o método para tornar a intenção clara independentemente dos padrões específicos da linguagem.

Linguagens e Bibliotecas Suportadas

O conversor gera código idiomático para quatro linguagens populares. Código Python usa a biblioteca requests, que é o padrão de fato para HTTP em Python. Código JavaScript usa a API fetch nativa, que está disponível em todos os navegadores modernos e Node.js. Código Ruby usa Net::HTTP da biblioteca padrão. Código PHP usa funções cURL (curl_init, curl_setopt, curl_exec), que estão disponíveis em praticamente todas as instalações PHP.

Tratamento de Autenticação e Cabeçalhos

Requisições de API frequentemente requerem autenticação. O conversor lida com autenticação Bearer token passada via -H 'Authorization: Bearer ...', autenticação Basic via -u username:password e cabeçalhos de chave de API. Cabeçalhos personalizados são traduzidos para o mecanismo apropriado de definição de cabeçalhos para cada linguagem. Cabeçalhos Content-Type são preservados para garantir que o corpo da requisição seja enviado no formato correto, seja JSON, form-encoded ou multipart.

Entendendo as Flags do cURL

cURL oferece dezenas de flags de linha de comando, mas um punhado representa a grande maioria do uso no mundo real. Aprender o que cada uma faz ajuda você a ler e escrever comandos cURL com confiança, e entendê-las torna mais fácil verificar se o código convertido está correto.

Flags de Requisição

A flag -X (ou --request) define o método HTTP. Valores comuns são GET, POST, PUT, PATCH e DELETE. Se você omitir -X completamente, cURL usa GET por padrão a menos que uma flag de dados como -d esteja presente, caso em que muda para POST automaticamente. A flag -H (ou --header) adiciona um cabeçalho personalizado à requisição. Você pode usá-la múltiplas vezes para definir vários cabeçalhos: -H 'Content-Type: application/json' -H 'Accept: application/json'. A flag -d (ou --data) envia dados no corpo da requisição e implica POST. Para payloads JSON você tipicamente a combina com -H 'Content-Type: application/json'. A variante --data-raw se comporta de forma idêntica mas não interpreta o prefixo @ como referência a arquivo.

Flags de Autenticação e Saída

A flag -u (ou --user) fornece credenciais de autenticação Basic no formato username:password. cURL codifica em base64 e envia no cabeçalho Authorization. A flag -o (ou --output) escreve o corpo da resposta em um arquivo em vez da saída padrão. A flag -O salva em um arquivo usando o nome de arquivo remoto da URL. A flag -v (ou --verbose) imprime informações detalhadas de requisição e resposta, incluindo detalhes de handshake TLS e trocas de cabeçalhos, o que é inestimável para depuração. A flag -k (ou --insecure) diz ao cURL para pular a verificação de certificado TLS, útil para ambientes de desenvolvimento com certificados autoassinados mas perigoso em produção. A flag -L (ou --location) diz ao cURL para seguir redirecionamentos HTTP (respostas 3xx), que muitas APIs e sites emitem.

Como a Conversão Funciona

Converter um comando cURL para código-fonte envolve várias etapas discretas. O conversor primeiro tokeniza a string de entrada, dividindo-a em espaços em branco respeitando aspas simples e duplas para que valores de cabeçalho e corpos JSON com espaços sejam mantidos intactos. Em seguida, percorre a lista de tokens sequencialmente, identificando flags conhecidas e consumindo seus argumentos. Uma flag como -X consome o próximo token como o método HTTP; -H consome o próximo token como string de cabeçalho; -d ou --data consome o próximo token como corpo da requisição. Tokens que não estão associados a nenhuma flag e parecem URLs (começando com http:// ou https://) são capturados como a URL alvo.

Uma vez que a análise está completa, o conversor mantém uma representação estruturada da requisição: a URL, o método HTTP, uma lista de cabeçalhos (cada um dividido em nome e valor no primeiro dois-pontos), a string do corpo bruto e quaisquer credenciais de autenticação. Essa representação intermediária é agnóstica de linguagem. A etapa final é a geração de código, onde um template específico da linguagem mapeia cada componente para os idiomas HTTP da linguagem alvo. O método se torna um argumento de função ou uma constante, cabeçalhos se tornam um dicionário ou array associativo e o corpo é anexado da maneira que a biblioteca espera. O código gerado é formatado com indentação adequada e pronto para executar.

Casos extremos requerem tratamento especial. Comandos cURL de múltiplas linhas que usam continuação com barra invertida (\ no final de uma linha) são unidos antes da análise. A flag -u é traduzida para um mecanismo de autenticação Basic específico da linguagem em vez de ser deixada como cabeçalho bruto. Cabeçalhos duplicados são preservados em ordem, porque algumas APIs dependem de múltiplos valores para o mesmo nome de cabeçalho (por exemplo, múltiplos cabeçalhos Set-Cookie). O conversor também remove os caracteres de prompt de shell $ ou % que às vezes aparecem quando um comando é copiado de um tutorial ou captura de tela do terminal.

Bibliotecas HTTP Específicas por Linguagem

Cada linguagem alvo usa uma biblioteca diferente com suas próprias convenções para construir requisições HTTP. Entender essas diferenças ajuda você a escolher a saída certa e modificar o código gerado quando necessário.

Python — requests

A biblioteca requests é o cliente HTTP mais popular no ecossistema Python. Ela fornece uma API simples e de alto nível onde o método HTTP mapeia diretamente para um nome de função: requests.get(), requests.post() e assim por diante. Cabeçalhos são passados como um dicionário simples para o argumento de palavra-chave headers. Corpos JSON podem ser passados via o parâmetro json, que automaticamente define o cabeçalho Content-Type e serializa o dicionário. O parâmetro auth aceita uma tupla para autenticação Basic. Dados da resposta estão disponíveis através de .json(), .text ou .content dependendo do formato desejado.

JavaScript — API fetch

A API fetch é nativa de todos os navegadores modernos e Node.js 18+. Ela recebe uma URL como primeiro argumento e um objeto de opções como segundo. O objeto de opções aceita propriedades method, headers e body. Cabeçalhos podem ser um objeto simples ou uma instância de Headers. Diferente de requests em Python, fetch não lança exceção para códigos de status de erro HTTP; você deve verificar response.ok manualmente. O corpo da resposta é consumido assincronamente através de métodos como response.json() ou response.text(). Como fetch retorna uma Promise, o código gerado usa async/await para legibilidade.

Ruby — Net::HTTP

A biblioteca padrão do Ruby inclui Net::HTTP, que é mais verbosa que os equivalentes em Python ou JavaScript, mas não requer dependências externas. Uma requisição típica começa analisando a URL em um objeto URI, depois criando uma instância de Net::HTTP configurada para o host e porta. Objetos de requisição como Net::HTTP::Post ou Net::HTTP::Get representam o método. Cabeçalhos são definidos usando notação de colchetes no objeto de requisição. O corpo é atribuído diretamente. Para URLs HTTPS, use_ssl deve ser definido como true. Devido a essa cerimônia, muitos desenvolvedores Ruby usam gems wrapper como Faraday ou HTTParty, mas o código gerado usa a biblioteca padrão para máxima portabilidade.

PHP — Extensão cURL

A extensão cURL do PHP encapsula a mesma biblioteca libcurl que alimenta a ferramenta de linha de comando curl. O fluxo de trabalho gira em torno de um handle criado com curl_init(). Opções são definidas via chamadas curl_setopt(): CURLOPT_URL para a URL alvo, CURLOPT_CUSTOMREQUEST para o método HTTP, CURLOPT_HTTPHEADER para um array de strings de cabeçalho e CURLOPT_POSTFIELDS para o corpo da requisição. Definir CURLOPT_RETURNTRANSFER como true faz curl_exec() retornar a resposta como string em vez de imprimi-la. Como a extensão PHP espelha a API C do libcurl de perto, o código PHP gerado mapeia quase um-para-um com as flags originais do cURL, tornando-o a conversão mais transparente das quatro linguagens.

Perguntas Frequentes

O que é cURL?

cURL é uma ferramenta de linha de comando para fazer requisições HTTP. Ele vem pré-instalado no Linux, macOS e Windows 10+, e é a ferramenta padrão para testar APIs.

Como eu leio um comando cURL?

Ele começa com curl seguido por uma URL. Use -X para método, -H para cabeçalhos, -d para dados do corpo e -u para autenticação.

Quais métodos HTTP o cURL suporta?

Todos os métodos padrão: GET, POST, PUT, PATCH, DELETE, HEAD e OPTIONS. Defina o método com a flag -X.

Posso converter cURL com autenticação?

Sim. A ferramenta lida com autenticação Basic (-u), tokens Bearer (-H Authorization) e outros padrões de autenticação baseados em cabeçalhos.

Isso lida com dados de formulário multipart?

Sim. Comandos com flags -F para uploads de arquivo e campos de formulário são convertidos para a sintaxe multipart apropriada em cada linguagem.

Related Calculators

Disclaimer: This calculator is for informational and educational purposes only. Results are estimates and should not be considered professional expert advice. Consult a qualified professional before making decisions based on these calculations. See our full Disclaimer.