C++ curlの使い方:基本から実践まで【サンプルコード付き】

cURL(カレントフォーアール)は、データ転送のためのツールとライブラリで、HTTP、HTTPS、FTPなどのさまざまなプロトコルをサポートしています。C++では、cURLライブラリを使用してネットワーク通信を行い、HTTPリクエストを送信し、HTTPレスポンスを受信することができます。

cURLライブラリを使用した簡単な例を以下に示します。

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

size_t writeCallback(void* contents, size_t size, size_t nmemb, std::string* buffer) {
    size_t realsize = size * nmemb;
    buffer->append((char*)contents, realsize);
    return realsize;
}

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

    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, &buffer);

        res = curl_easy_perform(curl);
        if (res != CURLE_OK) {
            std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
        }

        curl_easy_cleanup(curl);
    }

    std::cout << buffer << std::endl;

    return 0;
}

上記の例では、まずcURLのヘッダーファイルを含め、書き込みコールバック関数writeCallbackを定義します。次に、main関数でcURLオブジェクトを初期化し、リクエストのURL、書き込みコールバック関数、および書き込みデータのバッファを設定し、HTTPリクエストを実行してレスポンスをbufferに保存し、最後にレスポンス内容を出力します。

cURLライブラリを使用する際には、対応するcURLライブラリファイルをリンクする必要があります。コンパイル時には-lcurlパラメータを追加してcURLライブラリをリンクすることができます。

上記の例は、cURLライブラリの基本的な使用方法の一例であり、cURLライブラリにはさまざまな機能やオプションがあり、異なるオプションを設定することで、ヘッダーの設定、POSTリクエストの送信などが可能です。詳細な使用方法については、cURL公式ドキュメントを参照してください。

bannerAds