Wie man eine HTTP-Anfrage im C++-Code macht, gib mir 2 Beispiele mit reinem C++ und mit externer Bibliothek, welche ist effizienter?
Eine HTTP-Anfrage in C++ kann entweder mit reinem C++-Code oder durch Verwendung einer externen Bibliothek durchgeführt werden. Beide Ansätze haben ihre eigenen Vor- und Nachteile, und der effizienteste Ansatz hängt vom konkreten Anwendungsfall ab.

Hier ist ein Beispiel, wie man eine HTTP-Anfrage in reinem C++ mit den Klassen `std::stringstream` und `std::istream` macht:
#include <iostream>
#include <sstream>
#include <istream>
#include <ostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <algorithm>
#include <curl/curl.h>

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

  curl = curl_easy_init();
  if (curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/");
    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;
}

Und hier ist ein Beispiel, wie man eine HTTP-Anfrage mit der cURL-Bibliothek macht:

#include <iostream>
#include <sstream>
#include <istream>
#include <ostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <algorithm>
#include <curl/curl.h>

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

  curl = curl_easy_init();
  if (curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/");
    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;
}

Im Allgemeinen kann die Verwendung einer externen Bibliothek wie cURL effizienter sein, da sie eine höhere Ebene und eine benutzerfreundlichere Schnittstelle für HTTP-Anfragen bietet. Dies kann Zeit und Aufwand sparen, da Sie den Low-Level-Code für die Anfrage nicht selbst schreiben und warten müssen. Wenn Sie jedoch mehr Kontrolle über die Details der Anfrage wünschen oder an einem Projekt mit sehr spezifischen Anforderungen arbeiten, ist das Schreiben des Codes in reinem C++ möglicherweise die bessere Option.