1. O Que E o curl
O curl (Client URL) e uma ferramenta de linha de comando para transferir dados usando varios protocolos, com destaque para HTTP/HTTPS. Criado em 1998, esta presente em praticamente todos os sistemas Unix/Linux e macOS por padrao, e disponivel para Windows. E a ferramenta padrao para testar APIs, depurar requisicoes e automatizar chamadas HTTP em scripts.
2. Flags Mais Usadas
- -X METHOD: especifica o metodo HTTP (GET e o padrao, omitido automaticamente).
- -H "Header: Valor": adiciona um header HTTP a requisicao.
- -d "dados": envia um body na requisicao (implica POST se -X nao for informado).
- -L: segue redirecionamentos HTTP 301/302 automaticamente.
- -v: modo verbose, exibe headers enviados e recebidos para debugging.
- -k: ignora erros de certificado SSL (util em ambientes de desenvolvimento).
- -o arquivo: salva a resposta em um arquivo em vez de exibir no terminal.
- -m segundos: define o timeout maximo da requisicao.
3. Tipos de Autenticacao
O curl suporta varios mecanismos de autenticacao:
- Basic Auth: credenciais codificadas em Base64 no header Authorization. Use
-u usuario:senha. - Bearer Token: token JWT ou OAuth enviado no header
Authorization: Bearer TOKEN. - API Key: chave enviada em header customizado como
X-API-Keyou como query param.
"Nunca coloque credenciais reais em comandos curl que voce vai compartilhar. Use variaveis de ambiente: -H \"Authorization: Bearer $TOKEN\""
4. Enviando Body
Para enviar JSON, combine -H 'Content-Type: application/json' com -d '{"chave": "valor"}'. Para form data use -F campo=valor que automaticamente define o Content-Type como multipart/form-data. Para dados URL-encoded use --data-urlencode.
5. Debugging com curl
As flags de debugging sao essenciais no dia a dia:
-v: exibe o handshake TLS, headers enviados (com >) e recebidos (com <).-I: envia HEAD request, retorna apenas headers sem body.-w "%{http_code}": exibe o codigo HTTP de status apos a resposta.--trace-ascii arquivo: salva um trace completo da comunicacao.
6. Perguntas Frequentes
Posso usar o curl no Windows?
Sim. O curl esta disponivel nativamente no Windows 10 e 11 a partir do PowerShell e do Prompt de Comando. Para versoes anteriores, baixe o binario em curl.se.
Como escapar aspas em comandos curl no Windows?
No PowerShell use aspas duplas externas e escape as internas com barra invertida: curl -d "{\"chave\":\"valor\"}". No CMD use aspas simples dentro de aspas duplas ou vice-versa dependendo do contexto.