Gerador de código cURL
Entrada do cURL
Cole um comando cURL para analisar automaticamente a URL, o método, os cabeçalhos e o corpo da requisição.
Requisição analisada
Código gerado
Cole o comando curl e obtenha código de requisição HTTP executável em 11 linguagens em segundos.
Sugestões Relacionadas
Casos de uso
- Após clicar com o botão direito em uma requisição no painel Network do Chrome DevTools e selecionar «Copy as cURL», cole nesta ferramenta para converter diretamente para o código da linguagem usada no seu projeto, 10 vezes mais rápido que escrever a requisição manualmente
- Ao depurar APIs de terceiros quando a documentação fornece exemplos curl, converta rapidamente para código Python requests/Java OkHttp/C# HttpClient para integrar ao seu projeto
- Ao depurar interfaces de ambiente de produção, copie comandos curl de ferramentas de captura (Charles/mitmproxy/Wireshark) e converta para código de teste unitário para verificar diretamente
- Ao escrever documentação de API, alterne rapidamente entre exemplos de múltiplas linguagens, fornecendo exemplos de código prontos para executar para leitores de diferentes stacks tecnológicos
- Ao solucionar problemas de requisições em produção, use curl para reproduzir o problema e depois converta para código para enviar a colegas ou criar um Issue, facilitando que outros reproduzam diretamente
- Em desenvolvimento multilíngue (por exemplo, mudar de um projeto Python para Go), converta rapidamente requisições curl existentes para código de cliente HTTP da nova linguagem, economizando tempo de consulta à documentação
- Em scripts Shell converta comandos curl para PowerShell Invoke-RestMethod para colegas de operações Windows, ou vice-versa
- Aprenda o protocolo HTTP: comparando o código que implementa a mesma requisição em diferentes linguagens, entenda as diferenças de API das bibliotecas cliente HTTP
- Converta rapidamente curl -X POST -d 'json' para código com Content-Type correto e serialização JSON, evitando erros de concatenação de strings manualmente
- Quando precisar chamar APIs em scripts CI/CD, converta comandos curl depurados localmente para código da linguagem de script correspondente para integrar ao pipeline
Como Usar
- Obtenha o comando curl: no painel Network do DevTools do navegador clique com o botão direito na requisição → Copy → Copy as cURL (bash); ou exporte cURL de ferramentas de captura como Postman/Charles/mitmproxy; ou escreva o comando curl manualmente
- Cole na caixa de entrada: cole o comando curl na área de entrada superior, suporta comandos de uma ou várias linhas (com barra invertida de continuação), removendo automaticamente as quebras de linha
- Clique em botões de exemplo para referência: se não estiver familiarizado com o formato pode clicar em «Exemplo 1/2/3» para carregar comandos curl predefinidos e ver o efeito
- Veja resultados da análise: a área de resultados mostrará URL, número de cabeçalhos, caracteres do corpo, e selos de compressão/redirecionamento/ignorar certificado/autenticação Basic, mostrando avisos laranja se houver problemas
- Ajuste o método se necessário: se o método reconhecido automaticamente estiver incorreto (por exemplo, curl não tem -X POST mas deveria ser POST), altere manualmente o método HTTP no menu suspenso
- Selecione a linguagem alvo: na área de código alvo clique no botão da linguagem correspondente (fetch/Axios/Python requests/Go/PHP/Java/C#/PowerShell/wget, etc.)
- Copie o código: clique no botão «Copiar código», cole no seu projeto/terminal e execute
Recursos
- 11 linguagens/bibliotecas alvo: cobre frontend (JS fetch/Axios), Node.js (node-fetch), Python (requests/httpx), Go (net/http), PHP (cURL), Java (OkHttp), C# (HttpClient), PowerShell (Invoke-RestMethod), linha de comando (wget), todos os stacks tecnológicos principais
- Análise inteligente de comandos curl: reconhece automaticamente URL, método HTTP, cabeçalhos, corpo, suporta aspas simples/duplas, escape com barra invertida, comandos multilinha (barra invertida no final da linha)
- Suporte completo para parâmetros curl comuns: -X/--request método, -H/--header cabeçalho, -d/--data/-F formulário/corpo JSON, -u/--user autenticação Basic, -A/--user-agent UA, -b/--cookie Cookie, -e/--referer Referer, -L/--location seguir redirecionamentos, --compressed descompressão automática, -k/--insecure ignorar verificação de certificado, -I/--head requisição HEAD
- Reconhecimento inteligente de corpo JSON: detecta Content-Type application/json e serializa automaticamente com JSON.parse/JSON.stringify/requests(json=)/json=, gerando código que usa objetos diretamente em vez de strings, mais idiomático
- Conversão automática de autenticação Basic: ao detectar -u user:pass gera automaticamente o cabeçalho Authorization: Basic <base64>, usando mecanismos nativos de autenticação em cada linguagem (Python auth=, OkHttp credentials, C# credentials, etc.)
- Selos de indicadores de segurança: detecta automaticamente parâmetros como --compressed/-L/-k/-u, exibindo-os com selos visíveis nos resultados da análise
- Troca manual de método HTTP: após analisar automaticamente o método curl, permite trocar manualmente o método no menu suspenso (GET/POST/PUT, etc. 7 tipos), vendo o código correspondente instantaneamente
- Escape de strings seguro: ao gerar código para cada linguagem usa literais de string nativos (aspas triplas/barra invertida no Python, acentos graves no Go, @"" no C#, aspas simples no PHP, aspas duplas escapadas no Java), evitando erros de sintaxe
- Avisos de erro de análise: quando um comando curl inválido é inserido (falta URL, não começa com curl, POST sem body, etc.) mostra um aviso laranja indicando o problema específico
- 3 exemplos com um clique: fornece 3 exemplos típicos: GET+autenticação Token, POST+JSON, autenticação Basic+seguir redirecionamentos, para ver rapidamente a capacidade da ferramenta
- Limpar entrada com um clique: o botão Clear redefine rapidamente, sem resíduos ao colar novos comandos
- Processamento 100% local: os comandos curl e o conteúdo das requisições são analisados e convertidos completamente no navegador, não são enviados para nenhum servidor, tokens/senhas sensíveis não vazam
- Copiar código com um clique: após gerar o código clique no botão Copy para copiar para a área de transferência, cole diretamente no seu projeto e execute
- Adaptação de modo inseguro HTTPS: o parâmetro -k/--insecure gera a configuração correspondente de ignorar verificação de certificado TLS em Node/Go/Python/PHP/C#/PowerShell (wget usa --no-check-certificate, C# mostra aviso ServicePointManager, Node define NODE_TLS_REJECT_UNAUTHORIZED)
Perguntas frequentes
Para que serve a ferramenta de conversão de cURL para código? Por que não usar diretamente o comando curl?
Chamar diretamente comandos curl no código (como shell_exec, subprocess.run) requer iniciar subprocessos, é inseguro e difícil de manipular erros, obter cabeçalhos de resposta, fazer conversões de tipos. O código de produção deve usar clientes HTTP nativos da linguagem de programação (Python requests, Java OkHttp, JS fetch, etc.). O valor do curl-to-code é traduzir automaticamente os comandos curl que você copia do DevTools/ferramentas de captura para o código de cliente HTTP da linguagem correspondente, economizando o trabalho mecânico de consultar documentação de API, escapar aspas manualmente, processar JSON/autenticação, etc., copie e cole para executar.
Quais linguagens/bibliotecas alvo são suportadas?
Atualmente são suportados 11 alvos: JavaScript fetch (nativo do navegador), Axios (biblioteca HTTP universal Node/navegador), Node.js node-fetch, Python requests (biblioteca HTTP mais popular do Python), Python httpx (biblioteca HTTP de nova geração compatível com HTTP/2 e assíncrona), Go net/http (biblioteca padrão do Go), extensão PHP cURL, Java OkHttp (biblioteca de alto desempenho universal Android/backend), C# HttpClient (cliente HTTP padrão do .NET), PowerShell Invoke-RestMethod (comum em scripts de automação Windows), wget (ferramenta de download por linha de comando). Se a linguagem que você precisa não estiver na lista (como Ruby, Rust reqwest, Dart http, Swift URLSession, etc.), você pode enviar comentários na página, adicionaremos conforme a demanda.
Como copiar o comando curl do Chrome DevTools?
Passos: 1. Abra Chrome/Edge, pressione F12 para abrir DevTools; 2. Alterne para o painel Network; 3. Atualize a página ou dispare a requisição alvo; 4. Encontre a requisição alvo na lista de requisições (você pode filtrar por XHR/JS); 5. Clique com o botão direito na requisição → Copy → selecione «Copy as cURL (bash)» (recomendado versão bash, melhor compatibilidade); 6. Cole na caixa de entrada desta ferramenta. Tenha cuidado de não selecionar Copy as fetch (isso é código JS não curl). Firefox/Safari funcionam de forma semelhante, todos têm a opção Copy as cURL.
O manuseio de aspas em comandos curl é complicado, quais formatos são suportados?
A ferramenta reconhece aspas simples, aspas duplas, escape com barra invertida estilo bash; aspas duplas+escape ^ do Windows cmd; escape com acento grave do PowerShell basicamente. Recomenda-se usar formato bash (envolvido em aspas simples). Os comandos multilinha (com barra invertida \ de continuação) também suportam colagem, a ferramenta remove automaticamente quebras de linha e caracteres de continuação. Se o seu comando curl for especialmente complexo (contém variáveis de shell, substituição de comandos $(...), pipes |, etc.), recomenda-se executar primeiro o comando echo no terminal para imprimir o curl real expandido e depois copiar, ou simplificar manualmente primeiro (substituir variáveis por valores reais).
Por que ao enviar JSON com -d no curl o servidor recebe dados ilegíveis/400?
Este é um dos erros mais comuns do curl. A opção -d/--data do curl tem Content-Type padrão application/x-www-form-urlencoded (formato formulário), não application/json. Se você fizer diretamente curl -d '{"name":"demo"}' url, o servidor o analisará como formulário (falha na análise ou dados vazios). Você deve adicionar explicitamente o cabeçalho -H "Content-Type: application/json" para enviar JSON corretamente. Esta ferramenta mostra um aviso laranja quando detecta corpo mas sem Content-Type.
O código gerado pode ser copiado e executado diretamente? Quais dependências preciso instalar?
O código da maioria das linguagens pode ser executado diretamente usando bibliotecas padrão (fetch/Go net/http/PHP cURL/C# HttpClient/PowerShell/wget são integrados), não requer instalação adicional. Outros requerem bibliotecas de terceiros: Axios (requer npm install axios), node-fetch (requer npm install node-fetch, Node 18+ tem fetch integrado sem instalação), Python requests (pip install requests), Python httpx (pip install httpx), Java OkHttp (requer importar dependência okhttp3 com Maven/Gradle). O código por padrão imprime o código de status e texto da resposta, você pode modificar a lógica de processamento conforme necessário.
É compatível com upload de arquivos multipart/form-data (parâmetro -F)?
Suporte básico: o parâmetro -F é reconhecido como corpo da requisição (body), mas o código gerado atualmente trata @file como string literal em vez de upload de arquivos real. O upload de arquivos requer ler o conteúdo do arquivo local, os métodos de processamento variam muito entre linguagens (JS usa FormData/FormData.append, Python usa parâmetro files=, Go usa multipart.Writer). Recomenda-se, com base no código gerado pela ferramenta, consultar a documentação de upload de arquivos da biblioteca correspondente para fazer ajustes. Versões posteriores melhorarão o suporte a multipart.
Meus comandos curl e dados sensíveis serão enviados?
Absolutamente não. Todo o processo de análise e geração de código é concluído 100% localmente no seu navegador (JavaScript puramente de frontend), os comandos curl, Tokens/Cookies/senhas nos cabeçalhos, dados no corpo da requisição não são enviados para nenhum servidor. Você pode usar esta ferramenta offline, não se preocupe com vazamento de informações sensíveis.
Como -k/--insecure para ignorar verificação de certificado é tratado no código de cada linguagem?
Ao detectar o parâmetro -k, esta ferramenta gera a configuração correspondente de ignorar verificação de certificado para cada linguagem alvo: Python requests/httpx usa verify=False; Node.js define process.env.NODE_TLS_REJECT_UNAUTHORIZED='0'; Go cria tls.Config{InsecureSkipVerify: true} personalizado; PHP define CURLOPT_SSL_VERIFYPEER=false e CURLOPT_SSL_VERIFYHOST=0; Java OkHttp requer TrustManager personalizado (é adicionado aviso em comentário no código, porque o código é longo); C# pode personalizar ServerCertificateCustomValidationCallback; PowerShell usa -SkipCertificateCheck (PS6+); wget usa --no-check-certificate; fetch do navegador não pode ignorar certificados (restrição de segurança do navegador, é adicionado comentário explicativo no código). Nota: estas configurações são apenas para testes de desenvolvimento local, nunca desative a verificação de certificados em produção.
Por que o código Go gerado não segue redirecionamentos? Com -L deveria segui-los?
O comportamento padrão do net/http do Go é não seguir redirecionamentos (coincide com o comportamento padrão do curl, curl deve adicionar explicitamente -L para seguir). A ferramenta, ao detectar o parâmetro -L, gera um client vazio (http.Client{} com CheckRedirect nil por padrão, ou seja segue 10 redirecionamentos); sem -L gera um client com CheckRedirect retornando http.ErrUseLastResponse, não segue redirecionamentos (coincide com o comportamento do curl sem -L). Se você quiser que Go sempre siga redirecionamentos, você pode usar diretamente http.DefaultClient no código ou personalizar Client{Timeout: ...}.
Como manipular requisições que exigem login/com Cookies?
Há duas formas:①Copiar curl diretamente do DevTools do navegador com sessão iniciada (recomendado): clique com o botão direito na requisição→Copy as cURL, assim cookies/cabeçalhos são incluídos automaticamente, cole e converta para executar diretamente;②No curl especifique manualmente o valor do Cookie com -b/--cookie (-b 'sessionid=abc; token=xyz'), especifique autenticação Basic com -u/--user, especifique Bearer Token com -H "Authorization: Bearer xxx", a ferramenta converte esses cabeçalhos tal como estão. Nota: os Cookies copiados do navegador têm validade, podem expirar após algumas horas e precisar ser copiados novamente.
Por que o corpo JSON no Python requests usa o parâmetro json= em vez de data=?
O parâmetro data da biblioteca Python requests codifica dict como application/x-www-form-urlencoded, envia string tal como está, enquanto o parâmetro json serializa automaticamente dict/lista como string JSON e define automaticamente o cabeçalho Content-Type: application/json (se você não o definiu manualmente). Esta ferramenta, ao detectar que Content-Type contém application/json e o body é JSON válido, analisa automaticamente o JSON como dict do Python e usa o parâmetro json=, assim o código é mais conciso, você não precisa de json.dumps manualmente, e não esquece o cabeçalho Content-Type. Os body não JSON (formulário/XML/texto puro) usam o parâmetro data= para enviar a string original.
O comando curl é muito longo com muitos cabeçalhos, o que faço se o código gerado leva todos os cabeçalhos?
O comando curl copiado do DevTools incluirá muitos cabeçalhos adicionados automaticamente pelo navegador (Host, Connection, Accept, Accept-Encoding, Accept-Language, Sec-Fetch-*, sec-ch-ua, Upgrade-Insecure-Requests, etc.), a maioria desses cabeçalhos não precisa ser configurada explicitamente no código (os clientes HTTP adicionarão automaticamente valores padrão razoáveis, como Accept-Encoding, Connection, Host, Content-Length, etc.). Recomenda-se, após copiar o código gerado, remover manualmente os cabeçalhos desnecessários, conservando pelo menos: Content-Type, Authorization, Cookie (se necessário), cabeçalhos de negócio personalizados. Os cabeçalhos desnecessários não só fazem o código ficar feio, como podem causar comportamentos anômalos (por exemplo definir Accept-Encoding explicitamente mas o cliente não descomprime automaticamente).
É compatível com o parâmetro de proxy HTTPS (-x/--proxy)?
Atualmente o parâmetro de proxy HTTP (-x/--proxy) ainda não é convertido automaticamente. A configuração de proxy varia muito entre linguagens (JS fetch não tem suporte a proxy nativo requer Agent, Python usa parâmetro proxies=, Go através de Transport.Proxy, PHP usa CURLOPT_PROXY, C# usa WebProxy, Java usa OkHttpClient.Builder().proxy()). Os cabeçalhos de proxy (autenticação do proxy em si) também requerem processamento separado. Na versão atual os parâmetros relacionados a proxy são ignorados, você pode adicionar manualmente a configuração de proxy com base no código gerado, versões posteriores melhorarão o suporte a proxy.
Quais diferenças há com ferramentas online como curlconverter.com?
Em comparação com ferramentas conhecidas como curlconverter.com, as vantagens do curl-to-code do GeekFormat:①Processamento totalmente local (a lógica de processamento do curlconverter está no servidor ou cliente), não envia dados mais seguro;②Interface e explicações em chinês, amigável para desenvolvedores chineses;③O código gerado se adapta melhor ao uso de produção real (por exemplo Python requests usa parâmetro json= para body JSON em vez de data=, comportamento padrão do Go alinhado com curl, C# processa Content-Type corretamente sem codificar rigidamente application/json);④Documentação completa, FAQ, tabelas de comparação, resolução de problemas, não só gera código mas ajuda você a entender por que é escrito assim;⑤Grátis sem publicidade, não requer registro nem login, não precisa de nenhuma requisição de rede para usar.
Solução de Problemas
Após colar o comando curl aparece «URL não encontrada»
Falta o comando curl antes da URL (você colou diretamente um fragmento de cabeçalhos HTTP) A URL está dividida em linhas mas não usa barra invertida para continuar, a ferramenta não consegue reconhecer URLs concatenadas multilinha A URL contém caracteres especiais (& etc.) que são truncados pelo shell A URL está entre aspas simples mas tem aspas simples aninhadas sem escape
O código Python requests gerado retorna 401/403 ao executar
Cookie/Token expirado: ao copiar curl do DevTools o Cookie era válido naquele momento, expira após um tempo Falta User-Agent: algumas APIs validam User-Agent, o curl copiado do navegador leva UA do navegador, mas o código gerado pode conservá-lo ou perdê-lo Faltam cabeçalhos Referer/Origin: algumas verificações anti-hotlink/CSRF verificam esses cabeçalhos Não é passado corretamente o sessionid: alguns sites exigem login primeiro para obter Cookie antes da requisição
Envio dados JSON POST mas o servidor não os recebe
Falta o cabeçalho Content-Type: application/json: o Content-Type padrão de curl -d é application/x-www-form-urlencoded, não JSON Aspas duplas de string JSON sem escape: diferentes shells (bash/cmd/PowerShell) processam as aspas de forma diferente, copiar o formato incorreto causa JSON incompleto No código gerado o JSON está duplamente escapado (o objeto é novamente JSON.stringify) Há caracteres chineses no Body mas não estão codificados
Erro de certificado SSL/TLS ao executar o código gerado
O site HTTPS alvo usa certificado autoassinado: curl adicionou -k mas o código não o aplicou (verifique se foi gerada a configuração de ignorar certificado) Variável de ambiente do Node.js não definida: ao detectar -k é gerado process.env.NODE_TLS_REJECT_UNAUTHORIZED='0', deve ser colocado antes da chamada fetch SSL Inspection de proxy corporativo (certificado man-in-the-middle): você precisa adicionar o certificado raiz da empresa ao repositório de confiança em vez de desabilitar a verificação verify=False do Python afeta apenas requests, urllib3 subjacente continuará gerando InsecureRequestWarning
O resultado de resposta do código gerado é diferente do curl
Perda de cabeçalhos adicionados automaticamente: o navegador adiciona automaticamente cabeçalhos como Host/Connection/Accept/Accept-Encoding/Accept-Language/Sec-Fetch-*, se esses cabeçalhos são conservados ou não afeta a resposta Tratamento inconsistente de redirecionamentos: fetch segue redirecionamentos por padrão, Go não segue por padrão, esta ferramenta gera a configuração correspondente conforme o parâmetro -L Diferenças de compressão/descompressão: com --compressed algumas bibliotecas requerem configuração explícita para descompressão automática HTTP/2 vs HTTP/1.1: curl negocia HTTP/2 por padrão, alguns servidores antigos são sensíveis à versão HTTP Cookie Jar: curl -b envia Cookies manualmente toda vez, algumas bibliotecas gerenciam Cookies automaticamente causando mudanças de Cookies em requisições múltiplas
O comando curl copiado é muito longo causando truncamento/erro ao colar
Muitos cabeçalhos (por exemplo o navegador adicionou dezenas de cabeçalhos automaticamente): remova manualmente os cabeçalhos desnecessários (sec-ch-ua, sec-fetch-*, Accept, Accept-Language e outros cabeçalhos não essenciais) Arquivos codificados em Base64/Body grande fazem o comando ser muito longo: use --data-binary @file para ler o body do arquivo Limite de comprimento de linha de comando do Windows cmd (8191 caracteres): use PowerShell ou WSL para copiar curl formato bash Truncamento por caracteres em branco ao copiar: certifique-se de copiar completamente do DevTools com o botão direito
Glossário
- cURL / curl
- Ferramenta de linha de comando de código aberto e biblioteca libcurl, para enviar requisições de protocolos como HTTP/HTTPS/FTP por linha de comando via URL, é a ferramenta mais utilizada por desenvolvedores para depurar APIs.
- Método HTTP
- Ação de requisição HTTP, comuns são GET (ler), POST (criar), PUT (atualização completa), PATCH (atualização parcial), DELETE (excluir), HEAD (obter cabeçalhos), OPTIONS (consultar capacidades do servidor).
- Cabeçalho (Header)
- Pares chave-valor de metadados na requisição HTTP, como Content-Type, Authorization, User-Agent, Cookie, Accept, etc., especificados no curl através de -H/--header.
- Corpo (Body)
- Parte de dados da requisição HTTP, comum em POST/PUT/PATCH, especificada no curl através de -d/--data/--data-binary/-F, formatos comuns são JSON, form-urlencoded, multipart/form-data.
- Content-Type
- Cabeçalho de requisição/resposta que indica o tipo de mídia do body. application/json indica JSON, application/x-www-form-urlencoded indica formulário codificado em URL, multipart/form-data indica formulário de upload de arquivos.
- Autenticação Basic
- Autenticação básica HTTP, transmite usuário e senha através do cabeçalho Authorization: Basic base64(user:pass), especificada no curl com -u user:pass.
- Bearer Token
- Método de autenticação baseado em tokens, transmitido através do cabeçalho Authorization: Bearer <token>, comum em JWT/OAuth2.
- User-Agent
- Cabeçalho de requisição que identifica o tipo de cliente (navegador/rastejador/script), curl envia por padrão "curl/número da versão", muitos sites bloqueiam UAs não de navegador, comumente especificado com -A.
- Cookie
- Pares chave-valor enviados pelo servidor através de Set-Cookie e devolvidos pelo navegador em requisições posteriores através do cabeçalho Cookie, para manter sessões. curl -b envia Cookie, -c salva Cookie.
- Referer
- Cabeçalho de requisição que indica a URL da página de origem da requisição atual, algumas verificações de anti-hotlink/CSRF a verificam. Definido no curl com -e.
- Redirecionamento (3xx)
- Quando o servidor retorna códigos de status 301/302/303/307/308, indica ao navegador que salte para uma nova URL. curl por padrão não segue, adicione -L/--location para seguir.
- --compressed
- Opção do curl, adiciona automaticamente o cabeçalho Accept-Encoding: deflate, gzip e descomprime automaticamente a resposta. Sem definir, a resposta pode ser dados comprimidos ilegíveis.
- -k/--insecure
- Opção do curl, ignora a verificação de certificado HTTPS, apenas para ambientes de teste com certificados autoassinados, proibido em produção.
- fetch API
- API de requisições HTTP JavaScript nativa do navegador, retorna Promise, compatível com navegadores modernos.
- Axios
- Biblioteca cliente HTTP popular baseada em Promise, compatível com navegador e Node.js, serialização JSON automática, interceptores, cancelamento por timeout.
- OkHttp
- Biblioteca cliente HTTP Java/Android da Square, alto desempenho, compatível com HTTP/2, pool de conexões, GZIP transparente.
- HttpClient (.NET)
- Cliente HTTP recomendado para C#/.NET, namespace System.Net.Http, API padrão do .NET Core/.NET 5+.
- Invoke-RestMethod
- Cmdlet de requisição HTTP integrado no PowerShell 3.0+, analisa automaticamente respostas JSON/XML como objetos do PowerShell.
Tabela de comparação de opções comuns do cURL com 11 linguagens alvo
| Opção curl | Função | JS fetch | Axios | Python requests | Go net/http | PHP cURL | Java OkHttp | C# HttpClient | PowerShell | wget |
|---|---|---|---|---|---|---|---|---|---|---|
| -X METHOD | Especificar método HTTP | method: 'POST' | method: 'post' | requests.request('POST') | http.NewRequest('POST') | CURLOPT_CUSTOMREQUEST | .method() | HttpMethod.Post | -Method POST | --method=POST |
| -H 'K: V' | Adicionar cabeçalho | headers: {} | headers: {} | headers={} | req.Header.Set | CURLOPT_HTTPHEADER | .addHeader() | .Headers.TryAddWithoutValidation | $headers=@{} | --header= |
| -d 'data' | Corpo da requisição | body: data | data: data | data=/json= | strings.NewReader | CURLOPT_POSTFIELDS | RequestBody.create | new StringContent | -Body | --body-data= |
| -u user:pass | Autenticação Basic | Cabeçalho Authorization | auth:{} | auth=(u,p) | req.SetBasicAuth | CURLOPT_USERPWD | Credentials.basic | new NetworkCredential | Converte para Header automaticamente | --user/--password |
| -L | Seguir redirecionamentos | redirect:'follow' | maxRedirects: N | allow_redirects=True | CheckRedirect padrão | CURLOPT_FOLLOWLOCATION | .followRedirects | AllowAutoRedirect=true | Segue por padrão | -L |
| -k | Ignorar verificação de certificado | Não suportado no navegador | httpsAgent | verify=False | TLSClientConfig | CURLOPT_SSL_VERIFYPEER=false | Requer TrustManager personalizado | ServerCertificateCustomValidationCallback | -SkipCertificateCheck | --no-check-certificate |
| --compressed | Aceitar compressão | Suportado por padrão | Descomprime automaticamente | Descomprime automaticamente | Requer gzip manual | Descomprime automaticamente | Suportado por padrão | AutomaticDecompression | -TransferEncoding | Não descomprime por padrão |
| -A UA | User-Agent | Cabeçalho User-Agent | headers | headers={} | req.Header.Set | CURLOPT_USERAGENT | .header() | Padrão | -UserAgent | --user-agent= |
| -b cookie | Cookie | Cabeçalho Cookie | headers/withCredentials | cookies={} | req.Header.Set | CURLOPT_COOKIE | .header() | CookieContainer | -WebSession | --header= |
| -m SECS | Timeout | AbortController | timeout:N | timeout=N | http.Client.Timeout | CURLOPT_TIMEOUT | .callTimeout | client.Timeout | -TimeoutSec | --timeout= |
Valores comuns de Content-Type e uso com curl
| Content-Type | Uso | Exemplo curl | Observações |
|---|---|---|---|
| application/json | Enviar dados JSON | curl -H 'Content-Type: application/json' -d '{"a":1}' | Tipo de API mais utilizado, -d não define este cabeçalho por padrão, requer -H explícito |
| application/x-www-form-urlencoded | Formulário codificado em URL | curl -d 'name=a&age=1' | Este é o tipo padrão quando -d não tem -H |
| multipart/form-data | Upload de arquivos | curl -F 'file=@a.png' -F 'name=a' | -F define automaticamente este Content-Type e boundary |
| text/plain | Texto puro | curl -H 'Content-Type: text/plain' -d 'hello' | Texto normal, pouco utilizado em APIs |
| application/octet-stream | Dados binários | curl --data-binary @file.bin | Use --data-binary para enviar binário bruto |
| application/xml | Dados XML | curl -H 'Content-Type: application/xml' -d '<x/>' | Usado por SOAP/APIs empresariais antigas |
Comparação de três formatos de Copy as cURL no Chrome DevTools
| Formato | Estilo de aspas | Caracteres de escape | Cenário de uso |
|---|---|---|---|
| Copy as cURL (bash) | Aspas simples '...' | Escapa aspas simples com \' | Linux/macOS/WSL/Git Bash, recomendado para colar nesta ferramenta |
| Copy as cURL (cmd) | Aspas duplas "..." | Escapa caracteres especiais com ^ | Prompt de comando Windows cmd.exe |
| Copy as cURL (PowerShell) | Aspas duplas/acentos graves | Escapa com ` | Windows PowerShell 5/7 |
| Copy as fetch | Template strings JS | Sem escape necessário | Executar diretamente no Console do navegador |
- Gerador de cabeçalho de autenticação
- Analisador de Cache-Control
- Analisador de Content-Disposition
- Gerador de cabeçalhos CORS
- Inspector CORS
- Gerador de CSP
- Gerador de código cURL
- Verificação de Propagação DNS Global
- Consulta DNS
- Analisador de Forwarded Header
- Gerador de tags hreflang
- Analisador de HSTS
- Analisador de Cookies HTTP
- Verificador de HTTP Headers
- Testador de Requisição HTTP
- Consulta de códigos de status HTTP
- Consulta de IP
- Conversor IPv4
- Expansor de Faixa IPv4
- Caixa de Ferramentas IPv6
- Analisador de Link Header
- Consulta de MX
- Verificador de Portas
- Gerador de Query String
- Analisador de Rate Limit Header
- Verificador de Cadeia de Redirecionamento
- Gerador de Robots.txt
- Verificador de robots.txt
- Verificador de Security Headers
- Gerador de security.txt
- Analisador Set-Cookie
- Auditoria de Rede do Site
- Gerador de Sitemap
- Verificador de Sitemap
- Verificador de Certificados SSL
- Calculadora de Sub-redes
- Analisador de URL
- Analisador User-Agent
- Gerador de Links UTM
- Testador de WebSocket
- Qual é o Meu IP
- Consulta WHOIS