サンプルコード:
#include <curl/curl.h> #include <iostream> int main() { CURL *カール; CURLコードの解像度。 curl_global_init(CURL_GLOBAL_DEFAULT); カール =curl_easy_init(); if(カール) { curl_easy_setopt(curl, CURLOPT_URL, "/"); curl_easy_setopt(curl, CURLOPT_PROXY, ""); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL); // デフォルトの書き込み関数を使用します curl_easy_setopt(curl, CURLOPT_ERRORFUNCTION, NULL); // デフォルトのエラー処理関数を使用する res =curl_easy_perform(curl); if(res != CURLE_OK) std::cerr << "curl_easy_perform() が失敗しました: " <<curl_easy_strerror(res) << std::endl; curl_easy_cleanup(カール); } curl_global_cleanup(); 0を返します。 }
説明する:
-
#include <curl/curl.h>
: これは、libcurl ライブラリのヘッダー ファイルであり、libcurl のすべての関数宣言が含まれています。 -
#include <iostream>
: これは、iostream クラスを含む C++ 標準入出力ライブラリのヘッダー ファイルです。 -
curl_global_init(CURL_GLOBAL_DEFAULT)
: libcurl グローバル変数を初期化する関数です。CURL_GLOBAL_DEFAULT はデフォルト設定を使用することを意味します。 -
curl = curl_easy_init()
: これは、CURL オブジェクトを作成し、CURL ポインタを返す関数です。 -
curl_easy_setopt(curl, CURLOPT_URL, "https://www.ctrip.com/");
: CURL オブジェクトの URL を設定する関数で、パラメータは URL 文字列です。 -
curl_easy_setopt(curl, CURLOPT_PROXY, "www.duoip.cn:8000");
: CURL オブジェクトのサーバーを設定する関数で、パラメーターはサーバーの IP アドレスとポート番号です。 -
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
: これは、CURL オブジェクトがリダイレクトに従うかどうかを設定する関数です。パラメーターは整数で、1 はリダイレクトに従うことを意味し、0 はリダイレクトに従わないことを意味します。 -
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
: CURL オブジェクトの書き込み関数を設定する関数です。パラメータは関数ポインタです。リクエストが成功した後にこの関数が呼び出され、リクエスト結果を書き込みます。 -
curl_easy_setopt(curl, CURLOPT_ERRORFUNCTION, NULL);
: これは、CURL オブジェクトのエラー処理関数を設定する関数です。パラメータは関数ポインタです。この関数は、リクエストがエラーの処理に失敗した後に呼び出されます。 -
curl_easy_perform(curl);
: CURL オブジェクトに対するリクエストを実行する関数です。リクエストが成功した場合、この関数は CURLE_OK を返し、リクエストが失敗した場合、エラー コードを返します。 -
if(res != CURLE_OK)
: これは条件文です。curl_easy_perform() 関数によって返されたエラー コードが CURLE_OK と等しくない場合、次の文が実行されます。 -
std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
: これはエラー情報を出力する関数です。curl_easy_perform() 関数によって返されたエラー コードが CURLE_OK と等しくない場合、この関数が実行され、エラー情報が出力されます。 -
curl_easy_cleanup(curl);
: これは、CURL オブジェクトを破棄し、CURL オブジェクトが占有しているリソースを解放する関数です。 -
curl_global_cleanup();
: これは、libcurl グローバル変数を破棄し、libcurl が占有しているリソースを解放する関数です。 -
return 0;
: main関数の戻り値であり、プログラムが正常に終了したことを示します。