Construtor de Comando curl

Construa comandos curl a partir de método, cabeçalhos e corpo

Generated cURL Command

curl \
  -L \
  'https://api.example.com/users'

Request

Headers

Authentication

Options

Quick Templates

O Construtor de Comando curl gera comandos curl completos e apropriadamente escapados através de um formulário interativo, deixando você configurar método HTTP, cabeçalhos, autenticação, corpo de requisição e opções sem memorizar a sintaxe extensa de flags do curl. Selecione POST, adicione um corpo JSON e token Bearer, e obtenha um comando pronto para colar como curl -X POST -H "Authorization: Bearer eyJ..." -H "Content-Type: application/json" -d '{"name":"Alice"}' https://api.example.com/users.

Compreendendo curl

curl é o canivete suíço de HTTP. Vem instalado em virtualmente toda distribuição Linux, toda instalação macOS e está disponível no Windows. Quando você precisa testar um endpoint de API, reproduzir um relatório de bug, verificar cabeçalhos de resposta ou verificar que um servidor é alcançável, curl geralmente é o caminho mais rápido de pergunta para resposta. Roda em qualquer terminal, requer nenhuma configuração, e produz saída que você pode pipar em outras ferramentas, salvar em arquivos ou incluir em scripts.

O desafio com curl é sua pura breadth. A ferramenta suporta mais de 200 flags de linha de comando, cobrindo tudo de requisições GET básicas a autenticação de certificado de cliente, tunneling de proxy e downloads retomáveis. Para testes de API do dia-a-dia, você precisa talvez uma dúzia dessas flags, mas saber quais e acertar a sintaxe -- especialmente regras de quoting que diferem entre bash, zsh, PowerShell e CMD -- leva prática. É fácil esquecer se a flag de autenticação é -u ou --user, se o corpo vai após -d ou --data, e se corpos JSON precisam aspas simples ou double aspas escapadas.

Esse construtor trata a sintaxe para você. Você preenche as partes que conhece -- URL, método, cabeçalhos, corpo, credenciais de auth -- e ele gera um comando formatado corretamente e apropriadamente escapado para sua plataforma. Você pode copiá-lo diretamente para seu terminal e executá-lo. Ao longo do tempo, construir comandos interativamente e estudar a saída é uma das melhores formas de aprender sintaxe de curl, porque você pode ver como cada campo de formulário mapeia para uma flag e como quoting funciona para sua shell.

Como Construir um Comando curl

  1. Digite a URL alvo para sua requisição HTTP.
  2. Selecione o método HTTP (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS).
  3. Adicione cabeçalhos customizados (ex: Content-Type: application/json, Authorization: Bearer <token>).
  4. Defina o corpo de requisição para requisições POST/PUT/PATCH (JSON, dados de formulário ou texto bruto).
  5. Configure opções como seguir redirects, timeout ou saída verbosa.
  6. Copie o comando gerado para sua shell (Unix/macOS ou Windows PowerShell).

Exemplos de Comando curl

Requisição GET Simples

curl https://api.example.com/users/42

Requisição POST com Corpo JSON

curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -d '{"name": "Alice", "email": "[email protected]", "role": "admin"}'

Requisição Autenticada com Token Bearer

curl https://api.example.com/account \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

Requisição PUT com Autenticação Básica

curl -X PUT https://api.example.com/settings \
  -u "admin:password123" \
  -H "Content-Type: application/json" \
  -d '{"notifications": true, "theme": "dark"}'

POST com Dados de Formulário (URL-Encoded)

curl -X POST https://example.com/login \
  -d "username=alice&password=secret123"

Requisição com Múltiplas Opções

curl -X DELETE https://api.example.com/posts/99 \
  -H "Authorization: Bearer eyJhbGci..." \
  -H "X-Request-ID: req-abc-123" \
  -L \
  --max-time 30 \
  -w "\n%{http_code}\n"

Quando Usar o Construtor de Comando curl

  • Testando APIs durante desenvolvimento -- Construa rapidamente requisições para testar endpoints sem escrever código de cliente ou trocar para uma ferramenta GUI.
  • Gerando exemplos de documentação -- Construa comandos curl corretos e prontos para colar para arquivos de documentação de API e READMEs.
  • Criando relatórios de bug reproduzíveis -- Gere um comando curl isolado que reproduz um problema, tornando fácil para outros desenvolvedores testarem.
  • Aprendendo sintaxe de curl -- Construa comandos interativamente e estude as flags geradas para aprender opções de curl por exemplo.
  • Geração de comando entre plataformas -- Obtenha comandos apropriadamente escapados para ambas shells Unix/macOS (usando aspas simples) e Windows PowerShell (usando double aspas escapadas).
  • Compartilhando casos de teste de API -- Produza um comando autô-contido que qualquer pessoa com curl pode executar para verificar comportamento.

Referência de Flag de curl

Flags Comuns

FlagForma LongaPropósitoExemplo
-X--requestDefina método HTTP-X POST
-H--headerAdicione cabeçalho customizado-H "Content-Type: application/json"
-d--dataEnvie corpo de requisição-d '{"key": "value"}'
-u--userAutenticação básica-u "user:pass"
-L--locationSiga redirects-L
-o--outputEscreva saída para arquivo-o response.json
-s--silentSuprima barra de progresso-s
-v--verboseMostre cabeçalhos de requisição/resposta-v
-k--insecurePule verificação de TLS-k
-w--write-outFormato de saída customizado-w "%{http_code}"

Flags de Timeout e Retry

FlagPropósitoExemplo
--max-timeLimite de tempo total em segundos--max-time 30
--connect-timeoutTimeout de conexão em segundos--connect-timeout 5
--retryNúmero de retentativas em falha--retry 3
--retry-delaySegundos entre retentativas--retry-delay 2

Flags de Corpo e Conteúdo

FlagPropósitoQuando Usar
-d / --dataEnvie dados como corpo de requisiçãoJSON, dados de formulário, texto bruto
--data-rawEnvie dados sem interpretação de @Quando corpo contém caracteres @
--data-binaryEnvie dados binários como-sãoUploads de arquivo, payloads binários
-F / --formEnvie dados de formulário multipartUploads de arquivo com campos de formulário
--data-urlencodeURL-encode dados antes de enviarDados de formulário com caracteres especiais

Escaping de Shell e Quoting

O construtor trata as diferenças tricky entre shells:

Unix/macOS (bash, zsh) -- Usa aspas simples para corpos JSON para evitar interpretar $ e !:

curl -d '{"price": "$9.99"}' https://api.example.com/order

Windows PowerShell -- Usa double aspas escapadas já que PowerShell não suporta interpolação de string entre aspas simples da mesma forma:

curl -d "{\"price\": \"$9.99\"}" https://api.example.com/order

Windows CMD -- Usa double aspas com aspas internas escapadas:

curl -d "{\"price\": \"$9.99\"}" https://api.example.com/order

Dicas Práticas para Usar curl

Um dos recursos mais úteis mas subutilizados de curl é a flag -w (write-out). Deixa você imprimir informação específica sobre a requisição depois que completa, tal como o código de status HTTP, tempo total, tempo de resolução DNS ou tamanho da resposta. Para testes rápidos de API, curl -s -o /dev/null -w "%{http_code}\n" https://api.example.com/health te dá apenas o código de status sem saída de corpo -- perfeito para scripts de health check. Você também pode usar -w "%{time_total}\n" para medir tempos de resposta da linha de comando sem instalar ferramentas adicionais.

Ao debugar problemas SSL/TLS, a flag -v (verbose) de curl mostra o inteiro handshake de TLS incluindo a cadeia de certificado, versão de protocolo e suite de cipher. Isso é inestimável para diagnosticar erros de certificado, testando rotação de certificado ou verificando que um servidor suporta uma versão TLS específica. Combine -v com --tlsv1.2 ou --tlsv1.3 para forçar uma versão TLS específica e testar compatibilidade.

Para workflows de testes de API, considere salvar comandos curl frequentemente usados como scripts de shell ou aliases. Um comando como curl -s -H "Authorization: Bearer $API_TOKEN" -H "Content-Type: application/json" https://api.example.com/v1/ é tedioso digitar repetidamente. Salvá-lo como uma função ou alias com a URL base e cabeçalhos comuns significa você apenas precisa apender o endpoint específico e corpo para cada teste. Muitos desenvolvedores mantêm uma coleção de comandos curl em um arquivo requests.sh em seu projeto, que também serve como documentação viva da API.

Perguntas Frequentes

Como envio um arquivo como corpo de requisição?

Use o prefixo @ com -d para ler o corpo de um arquivo: curl -X POST -d @payload.json -H "Content-Type: application/json" https://api.example.com/upload. Para upload de arquivo multipart, use -F "[email protected]".

Qual é a diferença entre -d e -F?

-d envia o corpo como um único blob (usualmente application/x-www-form-urlencoded ou application/json). -F envia multipart/form-data, que é desenhado para uploads de arquivo e campos de formulário misto. Use -F quando você precisa fazer upload de arquivos ao lado de dados de formulário.

Devo usar -k / --insecure para pular verificação de TLS?

Apenas em ambientes de desenvolvimento com certificados auto-assinados. Nunca use -k em scripts de produção ou quando enviando credenciais, já que desabilita verificação de certificado e abre a conexão para ataques homem-no-meio.

Como vejo os cabeçalhos de resposta junto com o corpo?

Use -i (include) para imprimir cabeçalhos de resposta antes do corpo, ou -v (verbose) para ver cabeçalhos de requisição e resposta junto com detalhes de handshake de TLS. Para apenas cabeçalhos sem o corpo, use -I (requisição HEAD) ou -o /dev/null -v para descartar corpo mas mostrar saída verbosa.

curl pode seguir redirects automaticamente?

Sim. Use -L (ou --location) para seguir redirects 3xx. Por padrão, curl para no primeiro redirect e mostra a resposta de redirect. Com -L, segue a cadeia até atingir uma resposta final. Você pode limitar o número de redirects com --max-redirs 5.

Como manipulo cookies em curl?

Use -b para enviar cookies e -c para salvar cookies recebidos do servidor. Por exemplo, curl -c cookies.txt https://example.com/login -d "user=alice" salva cookies de login, e curl -b cookies.txt https://example.com/dashboard os envia de volta. Isso é útil para testar fluxos de autenticação que dependem de cookies de sessão.

Ferramentas Relacionadas

IPparse•Ferramentas Gratuitas de Rede e Calculadora de Sub-redes

© 2026 IPparse. All tools run locally in your browser.

100% Privacy-First • No Data Collected