Comandos curl
As opções de curl que resolvem o teste de qualquer API, incluindo as de diagnóstico que aparecem quando a requisição não funciona.
22 itens em 4 seções
Básico
curl https://api.exemplo.com/itens- GET simples, imprimindo o corpo da resposta
curl -i URL- Mostra os cabeçalhos da resposta junto com o corpo
curl -I URL- Só os cabeçalhos, com uma requisição HEAD
curl -s URL- Modo silencioso, sem a barra de progresso
curl -L URL- Segue redirecionamentos
curl -o arquivo.json URL- Salva a resposta em arquivo; -O usa o nome remoto
Métodos e corpo
curl -X POST URL- Define o método explicitamente
curl -d '{"a":1}' -H 'Content-Type: application/json' URL- Envia JSON; o -d já assume POST
curl -d @corpo.json URL- Envia o conteúdo de um arquivo como corpo
curl -F campo=valor -F arquivo=@foto.png URL- Envia multipart, o formato de upload de formulário
curl -G -d busca=teste URL- Converte os parâmetros em query string em vez de corpo
Cabeçalhos e autenticação
curl -H 'Authorization: Bearer TOKEN' URL- Autenticação por token
curl -u usuario:senha URL- HTTP Basic; o curl monta o cabeçalho em Base64
curl -H 'Accept: application/json' URL- Pede um formato específico de resposta
curl -A 'meu-agente/1.0' URL- Define o User-Agent
curl -b cookies.txt -c cookies.txt URL- Lê e grava cookies entre chamadas
Diagnóstico
curl -v URL- Modo verboso: mostra a negociação, os cabeçalhos enviados e recebidos
curl -w '%{http_code} %{time_total}s\n' -o /dev/null -s URL- Só o status e o tempo total, sem o corpo
curl --resolve exemplo.com:443:1.2.3.4 URL- Força um IP para o domínio, testando antes de mudar o DNS
curl -k URL- Ignora erro de certificado; só para diagnóstico, nunca em script de produção
curl --max-time 10 --retry 3 URL- Tempo limite e retentativas
curl --http1.1 URL- Força HTTP/1.1 quando há suspeita de problema com HTTP/2
Perguntas frequentes
- Como transformar uma requisição do navegador em curl?
- No DevTools, aba Network, clique com o botão direito na requisição e escolha Copy as cURL. O comando vem com todos os cabeçalhos, inclusive cookies — remova as credenciais antes de compartilhar.
- Por que o curl funciona e o navegador dá erro de CORS?
- Porque CORS é uma restrição imposta pelo navegador, não pelo servidor. O curl não aplica a política de mesma origem, então a mesma requisição passa direto.
- O que faz o -k e por que evitá-lo?
- Ele desliga a verificação do certificado TLS. Resolve o erro na hora, mas também deixa a conexão vulnerável a interceptação — em produção, corrija a cadeia do certificado em vez de ignorar o aviso.