Enviando uma requisição HTTP

C++:
Enviando uma requisição HTTP

Como Fazer:

Vamos usar a biblioteca cpr que é uma abstração da libcurl em C++ para facilitar o envio de requisições HTTP.

Primeiro, instale a biblioteca:

$ sudo apt-get install libcurl4-openssl-dev
$ git clone https://github.com/libcpr/cpr.git
$ cd cpr
$ mkdir build && cd build
$ cmake ..
$ make
$ sudo make install

Agora, escreva o código:

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

int main() {
    cpr::Response r = cpr::Get(cpr::Url("http://httpbin.org/get"));

    std::cout << "Status code: " << r.status_code << std::endl; // Exemplo: 200
    std::cout << "Response: " << r.text << std::endl;           // Resposta do servidor em texto
    
    return 0;
}

Exemplo de saída:

Status code: 200
Response: {
  "args": {}, 
  "headers": {
    ...
  }, 
  "origin": "24.127.96.129", 
  "url": "https://httpbin.org/get"
}

Aprofundamento

Enviar requisições HTTP é fundamental desde que a internet se tornou povoada por APIs e serviços baseados em web. Antes de bibliotecas como cpr, a libcurl era comumente usada em C++, mas ela é complexa e verbosa. Alternativas modernas como cpr abstraem esses detalhes, mantendo o código limpo e mais mantível.

A libcurl é uma das mais poderosas e versáteis bibliotecas para transferências de URL disponíveis, suportando uma vasta gama de protocolos. Por outro lado, cpr fornece uma interface moderna e simplificada para tarefas comuns de HTTP(S). Vale notar que ao operar em nível tão baixo como o HTTP, detalhes como cabeçalhos (headers), métodos de requisição (GET, POST, etc), e estados de resposta (códigos de status) se tornam críticos para o bom funcionamento do aplicativo.

Veja Também