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公式ドキュメントを参照してください。