Å sende en HTTP-forespørsel

C++:
Å sende en HTTP-forespørsel

Hvordan gjøre det:

C++ har ingen innebygd HTTP-støtte, så vi må bruke et bibliotek. Curl er et populært valg. Her er en grunnleggende kode for å sende en GET-forespørsel:

#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, "http://example.com");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);

        res = curl_easy_perform(curl);
        if(CURLE_OK == res) {
            std::cout << "Fetched data:\n" << readBuffer << std::endl;
        }
        
        curl_easy_cleanup(curl);
    }

    return 0;
}

Ved kjøring vil dette skrive ut innholdet fra http://example.com.

Dypdykk

HTTP-kommunikasjon er fundamentalt for webprogrammering. Før libcurl ble populært på 2000-tallet, var alternativene begrenset; programmerere skrev ofte sin egen nettverkskode eller brukte spesifikke biblioteker med varierende grad av kompleksitet og støtte.

Alternativene til curl inkluderer Boost.Beast, cpprestsdk, og lavnivå-tilnærminger som sockets. Når du velger et bibliotek, vurder støtten for asynkronitet, feilhåndtering, og kompleksiteten av HTTP-operasjoner du trenger.

Se også