Skip to content

Flags do curl explicadas

As flags do curl usadas no dia a dia, agrupadas por função: moldar a requisição, definir cabeçalhos, autenticar, apresentar uma identidade, controlar a saída, seguir redirecionamentos, ajustar a conexão e depurar. Cada linha pareia a flag com uma invocação realista.

O curl envia uma requisição HTTP e imprime o corpo da resposta. A maior parte do seu poder está nas flags: elas escolhem o método, anexam cabeçalhos e dados, tratam autenticação e decidem o que é impresso. A forma longa é mostrada onde é mais clara; a forma curta é a letra única. Coloque URLs entre aspas para o shell não consumir a query string.

Tabela de referência · 54 entradas
54 of 54 rows
Formato da requisição
Define o método HTTP.curl -X POST https://api.test
Adiciona um cabeçalho à requisição.curl -H "Accept: application/json" URL
Envia um corpo (define POST e um content type padrão).curl -d "name=Ada" URL
Anexa valores do -d como parâmetros de query em um GET.curl -G -d "q=hi" URL
Envia dados de formulário multipart (upload de arquivos).curl -F "file=@photo.png" URL
Envia dados de formulário com codificação de URL aplicada.curl --data-urlencode "name=Ada Lovelace" URL
Faz upload de um arquivo com PUT.curl -T big.zip URL
Anexa um upload ao arquivo remoto em vez de substituí-lo.curl -a -T log.txt ftp://server.test/logs/log.txt
JSON e APIs
Envia JSON com o content type correto.curl -H "Content-Type: application/json" -d '{"a":1}' URL
Envia o conteúdo de um arquivo como corpo.curl -d @body.json URL
Envia JSON sem definir os cabeçalhos manualmente (curl 7.82+).curl --json '{"a":1}' URL
Autenticação
Autenticação HTTP Basic com usuário e senha.curl -u ada:s3cr3t URL
Envia um token bearer OAuth.curl --oauth2-bearer TOKEN URL
Envia qualquer esquema de token manualmente.curl -H "Authorization: Bearer TOKEN" URL
Apresenta um certificado de cliente e sua chave para TLS mútuo.curl --cert client.pem --key key.pem URL
Verifica o servidor contra um arquivo de bundle de CA.curl --cacert ca.pem URL
Verifica o servidor contra um diretório de CAs.curl --capath /etc/ssl/certs URL
Envia a requisição através de um proxy.curl -x http://proxy.test:8080 URL
Pula a verificação TLS apenas para o salto do proxy.curl -x https://proxy.test:8443 --proxy-insecure URL
Exige TLS 1.3 como versão mínima.curl --tlsv1.3 URL
Identidade
Envia uma string User-Agent personalizada.curl -A "Mozilla/5.0" URL
Envia um cabeçalho Referer.curl -e https://example.com/page URL
Envia cookies com a requisição.curl -b "session=abc123" URL
Salva os cookies da resposta em um arquivo.curl -c cookies.txt URL
Saída
Grava o corpo em um arquivo.curl -o page.html URL
Salva o corpo usando o nome de arquivo remoto.curl -O https://site/file.tgz
Imprime os cabeçalhos da resposta acima do corpo.curl -i URL
Busca apenas os cabeçalhos (envia HEAD).curl -I URL
Oculta o medidor de progresso e os erros.curl -s URL
Imprime uma string de formato após o corpo (tempo, status).curl -w "%{http_code}\n" -o /dev/null URL
Sai com código non-zero em erros HTTP e descarta o corpo de erro.curl -f URL
Sai com código non-zero em erros HTTP mas ainda imprime o corpo.curl --fail-with-body URL
Nomeia o arquivo salvo a partir do cabeçalho Content-Disposition.curl -OJ URL
Retoma uma transferência interrompida de onde parou.curl -C - -O URL
Mostra uma barra de progresso em vez do medidor padrão.curl -# -O URL
Imprime erros mesmo em execução silenciosa.curl -sS URL
Grava os cabeçalhos da resposta em um arquivo.curl -D headers.txt URL
Solicita uma resposta comprimida e a decodifica.curl --compressed URL
Cria diretórios ausentes no caminho do -o.curl -o cache/api/data.json --create-dirs URL
Redirecionamentos e conexão
Segue redirecionamentos 3xx.curl -L URL
Máximo de segundos esperando a conexão TCP.curl --connect-timeout 5 URL
Máximo de segundos para a requisição inteira.curl --max-time 30 URL
Pula a verificação de certificado TLS.curl -k https://self-signed.test
Repete erros transitórios até N vezes.curl --retry 3 URL
Repete em qualquer erro, não apenas os transitórios.curl --retry 3 --retry-all-errors URL
Força a conexão sobre IPv4 ou IPv6.curl -4 URL
Mapeia um host e porta para um endereço, contornando o DNS.curl --resolve api.test:443:127.0.0.1 https://api.test
Vincula a transferência a uma interface de rede ou endereço.curl --interface eth0 URL
Transfere múltiplas URLs ao mesmo tempo.curl -Z URL1 URL2
Usa HTTP/2 ou HTTP/3 para a transferência.curl --http3 URL
Transmite o corpo conforme chega, em vez de bufferizar.curl -N URL
Lê flags adicionais de um arquivo de configuração.curl -K flags.cfg URL
Depuração
Imprime a troca completa de requisição e resposta.curl -v URL
Dump hexadecimal de tudo que é enviado e recebido.curl --trace - URL