cURL é uma ferramenta que permite a comunicação entre um dispositivo e um servidor direto do terminal

As plataformas de interface de programação de aplicação (API) podem ser úteis para automatizar e criar chamadas de solicitações mais sofisticadas de forma interativa por meio de uma interface de usuário (UI).

O comando cURL faz a mesma coisa, mas direto do terminal. A ferramenta está disponível em Linux e é nativa em MacOS e Windows.

O cURL é gratuito e permite a troca de dados via terminal de um servidor com um dispositivo. A solução é uma das melhores ferramentas para depurar solicitações de rede e testar APIs sem interação do usuário.

Assim como pode ser usada também como aplicativo de console autônomo ou compilado em outros programas, como uma biblioteca dinâmica (libcurl).

O cURL tem suporte integrado para SSL, autenticação de usuário, validação de certificado e cookies HTTP.

Além disso, pode também ser usado para fazer download ou upload de arquivos, enviar formulários da web, enviar solicitações para endpoints de API e simular ações do usuário sem usar um navegador da web.

Navegue pelo índice

    Por que usar cURL?

    (Fonte: Christina Morillo/Pexels/Reprodução)

    O cURL pode ser útil para criar um script que emita programaticamente várias solicitações de API e grave as respostas em um arquivo ou para desenvolvedores que preferem uma boa ferramenta de linha de comando a um aplicativo de interface gráfica do usuário (GUI).

    Independentemente de você realmente usar cURL, é importante pelo menos estar familiarizado com ele, porque a documentação da API geralmente contém exemplos que mostram como emitir solicitações de API usando cURL.

    Em APIs mais recentes, que ainda não oferecem kits de desenvolvimento de software (SDKs) correspondentes em várias linguagens de programação, geralmente são encontrados apenas exemplos de cURL nos documentos.

    Nesse sentido, é necessário pelo menos entender a sintaxe cURL, para ler e compreender esses exemplos.

    Primeiros passos no cURL

    No Windows ou MacOS, a máquina provavelmente tem o cURL instalado por padrão. Ainda assim, para determinar se o cURL está instalado, abra um prompt de comando e digite o seguinte:

    $ curl –help

    Se o comando não for reconhecido, então o cURL ainda não está instalado.

    Caso o comando resulte na exibição de algum conteúdo de ajuda limitado, então isso significa que o cURL já está instalado.

    Download do cURL

    Se o cURL não estiver instalado na máquina, e caso você utilize Windows, é necessário baixar o executável (curl.exe).

    O cURL Download Wizard no site oficial ajuda a determinar qual é a versão certa a ser baixada.

    Primeiro comando

    O cURL é uma ferramenta que roda localmente, ou seja, assim que estiver presente na máquina, a primeira solicitação de API pode ser emitida.

    Para fazer isso, abra um prompt de comando e digite conforme abaixo:

    $ curl –- version

    Então a ferramenta informará qual é a versão do aplicativo instalado.

    Principais comandos cURL

    Mãos sobre um teclado indicando que a pessoa está fazendo uso do cURL
    (Fonte: Sora Shimazaki/Pexels/Reprodução)

    O cURL é uma ferramenta de linha de comando para fazer todos os tipos de manipulação e transferência de URL. A ferramenta faz as requisições, pega os dados, envia-os e recupera as informações. 

    A sintaxe de um comando cURL é:

    $ cURL [opções] [URL]

    Conheça os principais comandos a seguir.

    • -A: especifica o USER_AGENT.
    • -b: salva um cookie em arquivo.
    • -c: envia um cookie para o servidor a partir de um arquivo.
    • -C: continua carregando o arquivo da quebra ou do deslocamento especificado.
    • -d: envia dados usando o método POST.
    • -E: usa um certificado SSL externo.
    • -F: envia dados como um formulário.
    • -G: se essa opção estiver habilitada, todos os dados especificados na opção -d são transferidos usando o método GET.
    • -H: envia cabeçalhos para o servidor.
    • -I: recebe apenas o cabeçalho HTTP e ignora todo o conteúdo da página.
    • -L: aceita e processa redirecionamentos.
    • -o: saída do conteúdo da página para um arquivo.
    • -O: salva o conteúdo em um arquivo com o nome da página ou do arquivo no servidor.
    • -p: usa proxy.
    • -v: saída detalhada máxima.

    1. Obter uma resposta de um servidor

    Tudo no servidor é uma resposta ao pedido; portanto, obter uma página HTML é o mesmo que baixar um arquivo.

    Para obter uma resposta HTML de: https://ajuda.locaweb.com.br/wiki/curl

    $ curl https://ajuda.locaweb.com.br/wiki/curl/

    Para obter a lista de postagens como resposta de um servidor (https://https://blog.locaweb.com.br/):

    $ curl https://blog.locaweb.com.br/

    Sabendo como obter uma resposta de um servidor, qualquer arquivo pode ser baixado, como o Brasão Nacional, por exemplo:

    $ curl https://www.gov.br/planalto/pt-br/conheca-a-presidencia/acervo/simbolos-nacionais/brasao-da-republica/brasaooficialcolorido.png –output brasao.png

    O comando acima despejará os dados da imagem binária, que não pode ser visualizada no terminal. Portanto para isso é preciso salvá-los e usar um visualizador de fotos

    para vê-los.

    2. Salvar o arquivo com um nome de arquivo padrão

    Cada arquivo que é servido na internet tem um nome. Para usar o mesmo nome de arquivo do conteúdo baixado, use o sinalizador -O.

    $ curl -O http://www.google.com/robots.txt

    3. Salvar o arquivo com um nome personalizado

    Para salvar o nome do arquivo com o próprio nome personalizado, use -o como sinalizador seguido (estritamente) por um nome personalizado.

    $ curl -O http://www.google.com/robots.txt googleRobots.txt

    4. Baixar vários arquivos

    Para baixar vários arquivos, separe-os com um espaço em branco, por exemplo:

    $ curl url1 url2 url3

    Se quiser usar o sinalizador -O para todas as URLs, aplique:

    $ curl url1 url2 url3 -O -O -O

    Essa mesma solução deve ser usada para qualquer sinalizador.

    Isso ocorre porque a primeira ocorrência de determinado sinalizador é para o primeiro URL, o segundo sinalizador é para o segundo URL e assim por diante.

    5. Baixar uma variedade de arquivos

    O cURL tem a capacidade embutida de baixar uma variedade de arquivos do servidor. Conforme está ilustrado a partir do exemplo a seguir.

    $ curl http://www.google.com/logo/logo[1-9].png

    Dessa forma o comando acima baixa arquivos de logo1.png, logo2.png, logo3.png e até logo9.png.

    6. Baixar um arquivo apenas se for o mais recente

    Para baixar um arquivo somente se o horário de modificação do arquivo for mais recente do que o horário especificado, use conforme o exemplo:

    $ curl url -z “DD MMM AA MM:HH:SS”

    Procurando performance, espaço e melhor custo-benefício do mercado? Conheça as soluções de revenda de hospedagem Locaweb.

    Clique aqui
    O autor

    Rodrigo Cardoso (Pokemaobr)

    Conhecido como Poke, é Streamer (Live "Coder") na Twitch, Web Developer e apresentador do talk show "The Velopers". Com bacharelado em Matemática e MBA em SOA, Poke atua como desenvolvedor e organizador de eventos de TI. É evangelista PHPSP e criador do PokePHP, focando em disseminar conteúdos técnicos e humor para a comunidade de desenvolvedores. Nas horas vagas, ele adora se conectar com a comunidade e compartilhar seu conhecimento de maneira divertida e informativa.

    Veja outros conteúdos desse autor