Como enviar solicitações POST com cURL

cURL é um utilitário de linha de comando versátil projetado para transferências de dados contínuas entre diferentes protocolos de rede, incluindo HTTP, HTTPS e FTP. Disponível em todos os principais sistemas operacionais, o cURL se tornou a ferramenta padrão para enviar solicitações HTTP da linha de comando. Seu utilitário multiplataforma oferece suporte a protocolos como HTTP, HTTPS, FTP e IMAP, facilitando o envio de solicitações para APIs e a coleta de dados em sites. Devido à sua ampla disponibilidade e suporte a protocolos, o cURL é comumente referenciado na documentação da API REST como uma maneira rápida de testar chamadas de API diretamente da linha de comando.
Este tutorial se aprofunda na execução de solicitações POST usando cURL, permitindo uma comunicação eficiente com servidores por meio de instruções simples de linha de comando.
O que é uma solicitação POST?
Uma solicitação POST é um método HTTP usado para enviar dados para um servidor e é um dos métodos HTTP mais comuns. Diferentemente das solicitações GET, onde os dados são incluídos na URL, as solicitações POST transmitem dados no corpo da solicitação. Isso permite uma transferência discreta de dados e evita as limitações de comprimento de URL impostas pelos navegadores em solicitações GET.
As solicitações POST são frequentemente usadas para envios de formulários, uploads de arquivos e envio de dados JSON para APIs. Como os dados são armazenados no corpo da solicitação, eles não são visíveis no histórico do navegador e, diferentemente das solicitações GET, as solicitações POST normalmente não são armazenadas em cache pelos navegadores.
Casos de uso prático para solicitações POST cURL
As solicitações cURL POST são amplamente utilizadas em vários cenários, incluindo:
- Testando APIs REST – Os desenvolvedores usam o cURL para testar rapidamente os endpoints da API antes de implementá-los em aplicativos.
- Automatizando envios de formulários – Ao usar o cURL, você pode automatizar interações com formulários da web, enviando dados sem entrada manual.
- Upload de arquivos – Muitas APIs permitem uploads de arquivos usando solicitações POST, tornando o cURL uma ferramenta eficaz para automatizar esse processo.
- Interagindo com sistemas de autenticação – Os desenvolvedores podem usar o cURL para autenticar usuários e acessar recursos protegidos com tokens de API ou credenciais.
- Extração e integração de dados – A extração e integração de dados de diferentes fontes online é simplificada usando os recursos de solicitação POST do cURL.
Executando uma solicitação POST com cURL
Para começar a usar o cURL para solicitações POST, certifique-se de que ele esteja instalado no seu sistema. Se você ainda não o instalou, consulte nosso guia sobre como configurar o cURL. Abaixo está uma tabela de referência resumindo as opções essenciais do cURL:
Bandeira curta | Bandeira Longa | Argumento(s) | Descrição |
-X | --solicitar | (use "POST" para solicitações POST) | Define o método HTTP para a solicitação |
-b | --biscoito | Envia cookies na solicitação | |
-c | --pote de biscoitos | Salva os cookies recebidos em um arquivo | |
-d | --dados | Transmite dados em uma solicitação POST | |
-f | --falhar | Garante falha silenciosa em erros do servidor | |
-F | --forma | <nome=conteúdo> | Envia dados do formulário (application/x-www-form-urlencoded) |
-H | --cabeçalho | cabeçalho/@arquivo | Inclui cabeçalhos HTTP personalizados |
-eu | --incluir | Exibe cabeçalhos HTTP na resposta | |
-eu | --cabeça | Recupera apenas cabeçalhos | |
-k | --inseguro | Ignora a verificação SSL | |
-EU | --localização | Segue redirecionamentos (3XX) | |
-o | --saída | Salva a saída em um arquivo especificado | |
-O | --nome-remoto | Salva a saída com o nome do arquivo remoto | |
-s | --silencioso | Suprime mensagens de saída | |
-v | --detalhado | Habilita saída detalhada (depuração) | |
-c | --escreva | Detalhes da resposta de saída |
Para visualizar a lista completa de opções disponíveis, use:
curl --ajuda
Erros comuns e como corrigi-los
Embora o cURL seja poderoso, os usuários frequentemente encontram erros ao enviar solicitações POST. Aqui estão alguns problemas e soluções comuns:
- curl: (6) Não foi possível resolver o host – Isso significa que o nome do domínio está incorreto ou há um problema de resolução de DNS. Verifique novamente a URL.
- curl: (7) Falha ao conectar ao host – Indica que o servidor não está acessível. Certifique-se de que o servidor esteja online e que você tenha uma conexão ativa com a internet.
- curl: (35) Erro de conexão SSL – Se a solicitação falhar devido a problemas de SSL, tente usar -k para ignorar a verificação de SSL.
- HTTP 400 Bad Request – Isso significa que o servidor rejeitou a solicitação, geralmente devido a um formato de dados incorreto. Verifique o tipo de conteúdo e a carga útil dos dados.
- HTTP 401 Unauthorized – Ocorre quando a autenticação é necessária, mas está ausente ou incorreta. Garanta que as chaves ou credenciais da API sejam passadas corretamente com -u ou -H "Authorization: Bearer <token>".
Sintaxe básica de solicitação POST
curl -X POST -d "Olá" https://example.com/api
Neste comando:
- -X POST especifica o tipo de solicitação.
- -d "Olá" define os dados que estão sendo enviados.
- https://example.com/api é o URL de destino.
Configurando cabeçalhos de tipo de conteúdo
curl -X POST -H "Tipo de conteúdo: texto/simples" -d "Olá" https://example.com/api
Adicionar -H "Content-Type: text/plain" informa ao servidor que o formato dos dados é texto simples.
Enviando dados JSON
curl -X POST -H "Tipo de conteúdo: application/json" -d '{"key":"value"}' https://example.com/api
Usar application/json como tipo de conteúdo garante que os dados sejam interpretados corretamente como JSON.
Enviando dados XML
curl -X POST -H "Tipo de conteúdo: application/xml" -d '<?xml version="1.0" encoding="UTF-8"?><root><nome>John Doe</nome><idade>30</idade></root>' https://example.com/api
Carregando arquivos com POST
curl -X POST -F "file=@/caminho/para/img.png" https://example.com/api/upload
Para uploads de vários arquivos:
curl -X POST -F "arquivo=@/caminho/para/img1.png" -F "arquivo=@/caminho/para/img2.png" https://example.com/api/upload
Autenticação com cURL
curl -u nome de usuário:senha https://example.com/login
Substitua o nome de usuário e a senha pelas credenciais reais.
Conclusão
O cURL simplifica as interações HTTP com suas opções de linha de comando poderosas e flexíveis. Ao dominar as solicitações POST, os desenvolvedores podem gerenciar com eficiência as comunicações de API, transmissões de dados e uploads de arquivos. Se você precisa testar endpoints de API, automatizar envios de formulários ou extrair dados de sites, o cURL fornece uma solução leve e eficaz. Continue experimentando o cURL para otimizar seu fluxo de trabalho!
Por favor, note que Plisio também oferece a você:
Crie faturas criptográficas em 2 cliques and Aceitar doações de criptografia
14 integrações
- BigCommerce
- Ecwid
- Magento
- Opencart
- osCommerce
- PrestaShop
- VirtueMart
- WHMCS
- WooCommerce
- X-Cart
- Zen Cart
- Easy Digital Downloads
- ShopWare
- Botble
10 bibliotecas para as linguagens de programação mais populares
- PHP Biblioteca
- Python Biblioteca
- React Biblioteca
- Vue Biblioteca
- NodeJS Biblioteca
- Android sdk Biblioteca
- C#
- Ruby
- Java
- Kotlin
19 criptomoedas e 12 blockchains
- Bitcoin (BTC)
- Ethereum (ETH)
- Ethereum Classic (ETC)
- Tron (TRX)
- Litecoin (LTC)
- Dash (DASH)
- DogeCoin (DOGE)
- Zcash (ZEC)
- Bitcoin Cash (BCH)
- Tether (USDT) ERC20 and TRX20 and BEP-20
- Shiba INU (SHIB) ERC-20
- BitTorrent (BTT) TRC-20
- Binance Coin(BNB) BEP-20
- Binance USD (BUSD) BEP-20
- USD Coin (USDC) ERC-20
- TrueUSD (TUSD) ERC-20
- Monero (XMR)