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