Enviando una solicitud http

C++:
Enviando una solicitud http

Cómo hacerlo:

Aquí utilizaremos la biblioteca C++ Requests, una envoltura simple y moderna para hacer solicitudes HTTP en C++ inspirada por la biblioteca Python requests. Primero, instálala:

git clone https://github.com/libcpr/cpr.git
cd cpr
mkdir build && cd build
cmake ..
make
sudo make install

Ejemplo de solicitud GET:

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

int main() {
    cpr::Response r = cpr::Get(cpr::Url{"http://httpbin.org/get"});
    std::cout << "Estatus: " << r.status_code << std::endl;
    std::cout << "Cuerpo: " << r.text << std::endl;
}

Ejemplo de solicitud POST:

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

int main() {
    cpr::Response r = cpr::Post(cpr::Url{"http://httpbin.org/post"},
                                cpr::Body{"Este es el cuerpo del mensaje"},
                                cpr::Header{{"Content-Type", "text/plain"}});
    std::cout << "Estatus: " << r.status_code << std::endl;
    std::cout << "Cuerpo: " << r.text << std::endl;
}

Salida para ambos, respectivamente, podría ser:

Estatus: 200
Cuerpo: {
  "args": {}, 
  ...
}
Estatus: 200
Cuerpo: {
  "data": "Este es el cuerpo del mensaje",
  ...
}

Análisis Detallado:

Historia: El protocolo HTTP se define en el RFC 2616. Desde su aparición en 1991, ha sido fundamental en la web.

Alternativas: Aparte de libcpr, hay otras bibliotecas como libcurl y Boost.Beast. libcurl es más antigua y completa, mientras que Boost.Beast es parte de Boost, así que puede ser más compleja.

Detalles de implementación: Al enviar una solicitud HTTP, típicamente necesitas un verbo HTTP (GET, POST, PUT, DELETE…), una URL, encabezados opcionales y, para algunos verbos, un cuerpo de mensaje. Las respuestas contienen un código de estado (como 200 para éxito) y, normalmente, un cuerpo de mensaje.

Ver También:

  1. C++ Requests GitHub
  2. libcurl
  3. Boost.Beast
  4. RFC 2616 - Protocolo HTTP 1.1