Skicka en HTTP-förfrågan med Basic-autentisering

C++:
Skicka en HTTP-förfrågan med Basic-autentisering

Hur man gör:

#include <iostream>
#include <curl/curl.h>
#include <base64.h> // Fiktivt bibliotek för exempel.

int main() {
    CURL *curl = curl_easy_init();
    if(curl) {
        // Bas64-kodar användarnamn och lösenord.
        std::string credentials = base64_encode("användarnamn:lösenord");

        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, ("Authorization: Basic " + credentials).c_str());

        curl_easy_setopt(curl, CURLOPT_URL, "http://exempel.se/resurs");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        
        // Skickar förfrågan och hanterar svar.
        CURLcode res = curl_easy_perform(curl);
        if (res != CURLE_OK) {
            std::cerr << "CURL-fel: " << curl_easy_strerror(res) << std::endl;
        }

        // Städar upp.
        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }
    return 0;
}

Sample Output (Kan variera beroende på serverns svar):

<respons-innehåll från servern>

Djupdykning:

Att autentisera HTTP-förfrågningar med ‘Basic’-metoden har använts sedan HTTP/1.0. Metoden är enkel men inte den säkraste - användarnamn och lösenord kodas i base64 utan kryptering, vilket gör dem sårbart vid nätverksavlyssning. Alternativ inkluderar OAuth, tokens och mer komplicerade handskakningar som SSL/TLS. Utöver säkerhetsrisker finns också implementeringsdetaljer som hantering av minne och headers i C++, och bibliotek som Curl och dess olika wrappers som förenklar HTTP-kommunikation.

Se även: