د libcurl easy handle په سر یو څرګند پراکسي ایښودل
د یو ځانګړي پراکسي لپاره libcurl easy handle تنظیم کړئ او د اختیار تېروتنې، د لیږد ناکامۍ او HTTP حالت بېل کړئ.
libcurl د پراکسي تنظیمات هغه easy handle ته نښلوي چې لیږد ترسره کوي. د منځګړي پته په هغه handle باندې وټاکئ، او CURLOPT_URL دې د موخې URL په توګه پاتې شي.
لاندې برخه فرض کوي چې libcurl پیل شوی او handle یو سم easy handle دی:
char error[CURL_ERROR_SIZE] = {0};
CURLcode result;
result = curl_easy_setopt(handle, CURLOPT_ERRORBUFFER, error);
if (result == CURLE_OK)
result = curl_easy_setopt(handle, CURLOPT_URL,
"https://example.com/");
if (result == CURLE_OK)
result = curl_easy_setopt(handle, CURLOPT_PROXY,
"http://proxy.example:8080");
if (result == CURLE_OK)
result = curl_easy_perform(handle);
if (result != CURLE_OK)
fprintf(stderr, "%s\n", error[0] ? error
: curl_easy_strerror(result));
تر هغه چې handle ورته اشاره کوي د تېروتنې بفر ژوندی وساتئ. د هغې له ساحې وتلو دمخه handle پاک کړئ یا د هغې CURLOPT_ERRORBUFFER اشاره بدله یا پاکه کړئ. د پراکسي کوربه نوم یو ځای نیوونکی دی؛ د HTTP پراکسي لیست څخه یو نه تصدیق شوی کاندید کولی شي د دې عامه سایټ ازموینې لپاره پته برابره کړي. د هغې ریښتینی سکیم او پورټ وکاروئ، او وګورئ چې ایا دا د HTTPS تونل اجازه ورکوي.
HTTPS موخه کولی شي HTTP پراکسي وکاروي. libcurl د هغه HTTPS لیږد لپاره تونل اداره کوي. په پراکسي اختیار کې http:// د منځګړي سره اړیکه بیانوي. دا یوازې هغه پراکسي پای ټکی ته https:// ته بدل کړئ چې واقعیا TLS مني او هغه libcurl جوړښت ته چې دا ملاتړ کوي.
اصلي لاره په قصدي ډول جوړه کړئ
یو څرګند پراکسي اختیار اړوند پراکسي چاپیریال تنظیم ته لومړیتوب ورکوي. تېریدل یوه جلا پریکړه ده: میراثي no_proxy لاهم کولی شي موخه خارج کړي. که دا handle باید د هرې موخې لپاره چې ورته ورکول کیږي غوره شوی پراکسي وکاروي، CURLOPT_NOPROXY د هغې پالیسۍ برخې په توګه خالي string ته تنظیم کړئ.
برعکس، CURLOPT_PROXY خالي string ته ټاکل د پراکسي کارول په څرګند ډول بندوي. NULL ته ټاکل څرګند ټاکل لرې کوي او بیا د چاپیریال پر بنسټ چلند ته اجازه ورکوي. هغه دوه ارزښتونه مختلف هدفونه پوره کوي.
د موخې ځانګړی سرلیک لکه Content-Type: text/xml پراکسي نه غوره کوي. دا یوازې هغه وخت اضافه کړئ چې ریښتینی غوښتنلیک بدن او د موخې API هغه رسنۍ ډول ته اړتیا ولري.
د HTTP پایله هم ولولئ
بریالی curl_easy_perform د دې معنی نه لري چې وېبپاڼې بریالی HTTP حالت بیرته راستون کړی. CURLINFO_RESPONSE_CODE ولولئ او د اپلیکیشن حالت سمبالښت پلي کړئ. د پراکسي CONNECT ځواب خپل ارزښت لري، CURLINFO_HTTP_CONNECTCODE; د تونل ردول د هرې وېبپاڼې ځواب څخه مخکې راځي.
CURLOPT_FAILONERROR کولی شي ډیرې HTTP تېروتنې د ناکامۍ په توګه وګڼي، مګر د هغې اسناد د تصدیق استثناوې یادوي. د پراکسي 407 ننګونه د موخې حالت څخه جلا وساتئ.