O que é o comando cURL? Entenda a sintaxe, as opções e veja exemplos

O comando cURL (client URL) é uma ferramenta de linha de comando para transferir dados de ou para um servidor. Na forma mais simples, você especifica uma URL e os dados que deseja enviar ou receber. Ele suporta vários protocolos, incluindo HTTP, HTTPS e FTP, e funciona na maioria dos sistemas operacionais.

O comando cURL no Linux permite que seu sistema troque dados com servidores pela internet. Essa ferramenta é essencial para várias tarefas, como baixar arquivos e testar o funcionamento de APIs.

Neste tutorial, vamos explicar o que é o comando cURL, como instalá-lo e qual é a sua sintaxe. Você também vai conhecer vários exemplos práticos de uso do cURL.

O que é o comando cURL?

O comando cURL (client URL) é uma ferramenta poderosa usada para transferir dados de e para servidores. Ele funciona por meio da interface de linha de comando (CLI) e suporta vários protocolos, como HTTP, HTTPS, FTP e SMTP. Essa flexibilidade o torna muito eficiente para tarefas como testar APIs, baixar arquivos e interagir diretamente com servidores web.

Embora alternativas como o Postman ofereçam uma interface gráfica de usuário (GUI) para essas tarefas, o cURL continua sendo um dos favoritos dos desenvolvedores por sua simplicidade, rapidez e compatibilidade com uma ampla variedade de protocolos. Para quem usa comandos do Linux no dia a dia, o cURL é uma ferramenta indispensável.

Instalação do cURL

O comando cURL já vem pré-instalado por padrão na maioria dos sistemas operacionais Linux. Para verificar se ele está configurado, abra o terminal ou conecte-se via SSH caso use um servidor virtual privado (VPS) remoto.

Se você usa uma VPS da Hostinger, também pode se conectar ao sistema com um clique usando o terminal do navegador. Basta abrir a página de gerenciamento da VPS no hPanel e clicar no botão no canto superior direito.

Depois de acessar a CLI do seu sistema, execute o seguinte comando para verificar se o cURL está instalado:

curl --version

Se o sistema tiver o cURL, a CLI vai mostrar o número da versão instalada. Caso contrário, você verá o erro Command not found.

Para instalar o cURL, execute os comandos abaixo, um após o outro. Lembre-se de substituir apt pelo gerenciador de pacotes correspondente ao seu sistema operacional Linux:

sudo apt update && sudo apt upgrade
sudo apt install curl

Sintaxe básica e opções do comando cURL

A sintaxe básica do comando cURL é a seguinte:

curl [options] [URL]

Aqui vai o detalhamento da sintaxe:

  • curl – nome do comando que indica ao sistema que você está executando o cURL.
  • Opções – flags adicionais que alteram o comportamento do comando cURL.
  • URL – endereço do servidor ou endpoint de destino.

Como há várias opções disponíveis, consulte a documentação do cURL para ver a lista completa. Entre elas, estas são algumas das mais usadas:

  • –help – exibe o manual e as opções do comando cURL.
  • -O – baixa o arquivo original da URL especificada.
  • -L – segue URLs de redirecionamento.
  • -I – busca apenas o cabeçalho.
  • -d – envia dados de formulário.
  • -F – envia dados complexos ou arquivos.
  • -X – especifica o método de transferência de dados.

Important

Os comandos do Linux diferenciam maiúsculas de minúsculas. Certifique-se de usar as opções com as letras maiúsculas e minúsculas corretas para evitar erros.

O comando cURL permite enviar ou receber dados de um endpoint usando diferentes métodos HTTP:

  • GET – método padrão que busca dados do servidor.
  • POST – envia dados para o endpoint.
  • PUT – cria um recurso no endpoint ou atualiza um já existente.
  • DELETE – remove dados do endpoint.

Exemplos de comandos do cURL

Nesta seção, vamos ver vários exemplos práticos do comando cURL para diferentes tarefas.

Acessar uma página da web

O uso mais básico do comando cURL é buscar o conteúdo HTML de uma página da web. Para isso, basta executar o cURL com o endpoint de destino:

curl https://www.google.com

O comando cURL vai exibir o código HTML da página da web como saída padrão na sua CLI.

Você também pode enviar solicitações HTTP para várias URLs usando um único comando:

curl https://www.example1.com https://example2.com

Salvar a saída em um arquivo

Você pode salvar a saída do comando cURL em um arquivo adicionando o operador de redirecionamento (>) ao comando. Isso é útil para armazenar o resultado para acompanhamento ou arquivamento.

Por exemplo, o código a seguir vai salvar o conteúdo HTML do Google em file1.txt:

curl https://www.google.com > file1.txt

O comando vai criar o arquivo automaticamente caso ele ainda não exista. Se file1.txt já existir, o cURL vai sobrescrevê-lo.

Baixar um arquivo com o nome original

Um dos usos mais comuns do cURL é baixar um arquivo remoto da internet, de forma semelhante ao wget. Para isso, use a opção -O:

curl -O http://www.example.com/path/file.zip

O comando vai baixar o arquivo especificado, chamado file.zip, para o diretório de trabalho atual. Sem a opção -O, o cURL vai exibir o conteúdo do arquivo na saída padrão da CLI.

Seguir redirecionamentos

Se uma URL redirecionar para outra página, o cURL não vai seguir o redirecionamento e retornará o status 301 ou 302. Por exemplo, vamos verificar googlr.com:

curl http://www.googlr.com

Como essa URL redireciona para google.com, o cURL não segue o redirecionamento e retorna o status 301, indicando que o documento foi movido.

Para seguir automaticamente o redirecionamento e exibir o conteúdo de google.com, adicione a opção -L ou –location:

curl -L http://www.googlr.com

Se a URL redirecionar várias vezes, você pode limitar quantos redirecionamentos o cURL vai seguir usando a opção –max-redirs:

curl -L --max-redirs 3 http://www.googlr.com

Buscar apenas os cabeçalhos

Em alguns casos, buscar apenas o cabeçalho da resposta do endpoint é mais útil do que recuperar todo o conteúdo. Isso reduz a saída, facilita a análise e minimiza o consumo de largura de banda.

As informações nos cabeçalhos de resposta geralmente são suficientes para fins de teste. Por exemplo, elas incluem o status da resposta HTTP, as chamadas de API restantes e os redirecionamentos.

Para buscar apenas os cabeçalhos com o cURL, adicione a opção -I (i maiúsculo) ou –head:

curl -I http://www.google.com

Solicitações autenticadas

Ao enviar uma solicitação para um endpoint protegido, como uma API interna, geralmente você precisa autenticá-la incluindo as credenciais no comando cURL.

No entanto, o comando e a opção variam de acordo com o método de autenticação. Por exemplo, se você usa um nome de usuário e uma senha, execute:

curl -u username:password <URL>

Você também pode omitir :password e inseri-la separadamente depois, evitando que a credencial apareça no histórico do Bash.

Se você usa um token Bearer, use a seguinte sintaxe:

curl -H "Authorization: Bearer <token>" <URL>

O comando é parecido se você usa uma chave de API no cabeçalho para autenticação:

curl -H "Authorization: ApiKey <API key>" <URL>

Se a sua API precisar especificamente da chave de autorização diretamente na URL, você pode adicioná-la usando o seguinte comando:

curl "https://api.example.com/data?api_key=api_key"

Envio de dados de formulário

O cURL permite enviar dados facilmente para formulários em um endpoint. Isso é útil para automatizar o processo com um script Bash ou quando você não quer interagir com a interface web do destino.

Para enviar dados de formulário com o cURL, você precisa especificar o par chave-valor. A chave corresponde ao nome do campo do formulário, enquanto o valor indica os dados que você quer inserir. A sintaxe é a seguinte:

key1=value1&key2=value2

Você precisa de duas opções, -X para definir o método de envio e -d para indicar ao cURL que deseja inserir dados. O comando completo pode ficar assim:

curl -X POST -d "username=johndoe&password=secret" https://example.com/login

No exemplo, o cURL usa a solicitação POST para inserir as credenciais no formulário da página de login.

Ao enviar dados de formulário, certifique-se de que eles sigam o formato de codificação de URLs. Por exemplo, substitua espaços por %20 e o caractere & por %26.

Você também pode inserir dados de um arquivo usando a sintaxe a seguir. Certifique-se de que o arquivo contenha os dados no formato correto de pares chave-valor.

curl -X POST -d @data.txt https://example.com/login

Enviar um arquivo

Se você quiser enviar um arquivo local ou dados mais complexos para um endpoint, use a opção -F. Essa opção usa o método POST por padrão, então não é necessário especificá-lo manualmente com -X.

Por exemplo, o código a seguir envia um arquivo de texto para o endpoint:

curl -F "file=@test.txt" https://example.com/upload

Se você quiser enviar vários arquivos, basta listá-los no comando, cada um começando com a opção -F:

curl -F "file=@/path/to/image.jpg" -F "file=@/path/to/image2.jpg" https://example.com/upload

Você também pode enviar arquivos usando o cURL pelo protocolo de transferência de arquivos (FTP). Nesse caso, use a opção -T:

curl -T /path/to/file ftp://ftp.example.com/remote/path/

Para usar o protocolo seguro de transferência de arquivos (SFTP) ou um servidor FTP protegido, adicione as credenciais de autenticação antes da opção -T:

curl -u username:password -T /path/to/file sftp://sftp.example.com/remote/path/

Como definir cabeçalhos personalizados

Os cabeçalhos de solicitação personalizados permitem interagir com o servidor web ou a API de uma maneira específica. Com eles, você pode adicionar metadados específicos para obter uma resposta personalizada, o que é útil ao testar a funcionalidade do endpoint.

Você pode definir um cabeçalho personalizado com a opção -H usando esta sintaxe:

curl -H "Header: value" <URL>

Por exemplo, você pode especificar o tipo de conteúdo que quer enviar no cabeçalho. Aqui está o comando:

curl -X POST -H "Content-Type: application/json" -d '{"form":"JSONdata"}' https://api.example.com/

Você também pode definir um cabeçalho personalizado para especificar o tipo de conteúdo que aceita como resposta. Por exemplo, se quiser que o endpoint responda em JSON, use o seguinte:

curl -H "Accept: application/json" https://api.example.com/data

Ao testar a API, você pode definir um cabeçalho personalizado para especificar a versão a ser usada. O comando fica assim:

curl -H "X-API-Version: 2" https://api.example.com/v2/data

Usar protocolos diferentes

Dependendo do endpoint, talvez você precise usar protocolos diferentes com o cURL. Por exemplo, talvez você queira usar o SFTP para transferir arquivos, enquanto testar um servidor de e-mail exige o SMTP.

Para usar o cURL com protocolos diferentes, basta especificar o protocolo no início da URL do endpoint, antes de ://. Por exemplo, este comando transfere dados usando SMTP:

curl --url smtp://smtp.example.com --mail-from "user@example.com" --mail-rcpt "recipient@example.com" -T email.txt

O comando envia uma mensagem de user@example.com para recipient@example.com pelo servidor de e-mail smtp.example.com, usando o protocolo SMTP.

Conclusão

O comando cURL no Linux permite que seu sistema se conecte a um servidor e transfira dados de e para ele. Ele se destaca pela compatibilidade com vários protocolos e pela possibilidade de incluir informações adicionais, como cabeçalhos personalizados.

Embora o cURL já venha instalado na maioria das distribuições Linux, você pode instalá-lo manualmente usando o gerenciador de pacotes. O uso básico desse comando é buscar o conteúdo de uma página da web ou a resposta de uma API.

Você também pode baixar arquivos com a opção -O ou enviá-los com a opção -F. Além disso, use -H para definir um cabeçalho de solicitação personalizado, por exemplo, para adicionar um token de autenticação ou especificar a versão da API.

Para enviar dados de formulário usando o cURL, use a opção -d. Já para enviar recursos mais complexos, como arquivos, adicione a opção -F.

Perguntas frequentes (FAQ) sobre o comando cURL

Para que serve o comando cURL no Linux?

No Linux, o comando cURL permite se conectar a um servidor remoto e transferir dados de e para ele. Ele é útil para várias tarefas, como baixar um arquivo de um site e enviar solicitações a uma API para testes.

Quais protocolos o cURL suporta?

O cURL suporta vários protocolos de transferência de dados, incluindo HTTP, HTTPS, FTP e SMTP. Para usar um protocolo específico, basta inseri-lo no início da URL, antes de u003cstrongu003e://u003c/strongu003e. Por exemplo, use o endpoint u003cstrongu003eftp://www.example.comu003c/strongu003e se quiser usar FTP.

Como faço para verificar se o cURL está instalado no meu sistema?

Para verificar se o cURL está instalado no sistema, execute o comando u003cstrongu003ecurl u002du002dversionu003c/strongu003e. Se a CLI mostrar um número de versão, o cURL está instalado. Caso contrário, ela exibirá o erro u003cstrongu003eCommand not foundu003c/strongu003e.

Todo o conteúdo dos tutoriais deste site segue os rigorosos padrões editoriais e valores da Hostinger.

Author
O autor

Faradilla Ayunindya

Faradilla, or Ninda, is a Content Marketing Specialist with a passion for technology, a curiosity for digital marketing trends, and a love for languages. When she's not writing Hostinger tutorials, you can find her learning about life sciences. Follow her on LinkedIn.

O que dizem nossos clientes

Comentários

3 responses

Write a respond

Por favor, preencha os campos obrigatórios.Por favor, aceite os termos de privacidade.Por favor, preencha os campos obrigatórios e aceite a seleção dos termos de privacidade.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.
Author
Marina

Outubro 18 2021

Muito bom!

Author
Hugo

Junho 05 2022

❤️

Author
Rene Melo

Julho 23 2022

Muito bom.