Utilizando cURL com C++

Um código básico de exemplo, mas já útil para entendimento de como funciona.


Utilizando CURL com C++

cURL realmente é uma biblioteca incrível e no cpp::daily vamos falar basicamente do uso dela com C++ ! Nós fizemos um vídeo com diversos detalhes de como utilizar o cURL via linha de comando e você pode ver nesse link: 12 DICAS para você usar o COMANDO curl como um NINJA .

Mas utilizá-lo com C++ é uma tarefa um pouco mais árdua, porém possível até porque muitas aplicações são feitas utilizando o cURL .


Antes de mais nada certifique-se que você possui a biblioteca cURL instalada no seu sistema, exemplos:

Lembre-se de que não é o comando e sim a biblioteca

sudo emerge net-misc/curl # Gentoo, Funtoo, ...
sudo apt install libcurl3 # ou a libcurl4, para Debian, Ubuntu, Linux Mint, ...

Utilizando com C++

Existem muitas particularidades tanto em escrever o código como compilar. Mas para ficar simples( até porque futuramente teremos um vídeo mais detalhado sobre cURL com C++ ), vou mostrar um exemplo de código que acessa o endereço: https://gnu.terminalroot.com.br/ip.php que devolve dados de acesso como: Sistemas Operacional, Navegador, Arquitetura e número de IP e vamos obtê-lo com C++ .

Perceba que precisamos incluir o cabeçalho: #include <curl/curl.h> e instanciar a class CURL, usamos também a função size_t WriteCallback para nos exibir o retorno. Leia e analise todo o código para uma maior compreensão.

Exemplo: vim curl.cpp

#include <iostream>
#include <curl/curl.h>

static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp){
    ((std::string*)userp)->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main(){
  CURL * curl;
  CURLcode res;
  std::string readBuffer;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "https://gnu.terminalroot.com.br/ip.php");
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
    res = curl_easy_perform(curl);
    curl_easy_cleanup(curl);

    std::cout << readBuffer << std::endl;
  }
  return 0;
}

E para compilar precisamos informar a biblioteca para o compilador, exemplo:

c++ curl.cpp -lcurl -o get-data

Se rodarmos o ./get-data perceberemos que a saída será com os dados informados acima, mas podemos filtrar e então obter nosso endereço de IP: global

./get-data | grep -i ip
IP: 201.51.63.71

Só com esse exemplo básico já dá pra você “brincar” com diversas possibilidades!

Por hoje é só, são pequenas doses diárias que farão sempre nos manter antenado com o C++ !

Acompanhe o cpp::daily

Deseja aprender C++ e criar seus programas Gráficos e para Terminal com portabilidade para Linux e Windows?

Então se inscreva nos nossos Cursos de C++ Moderno . Você aprender criar:

Acesse o endereço:

https://terminalroot.com.br/cpp/ e saiba mais!


cppdaily cpp


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!