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, ...
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++ !
Então se inscreva nos nossos Cursos de C++ Moderno . Você aprender criar:
Acesse o endereço: