libcurl easy handle غا ئوچۇق proxy تەڭشەش
libcurl easy handle نى مەلۇم proxy ئۈچۈن سەپلەپ، تاللاش خاتالىقى، يۆتكەش مەغلۇبىيىتى ۋە HTTP ھالىتىنى ئايرىڭ.
libcurl proxy سەپلىمىسىنى يۆتكەشنى ئىجرا قىلىدىغان 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 كۆرسەتكۈچىنى ئالماشتۇرۇڭ ياكى تازىلاڭ. proxy نىڭ host نامى ئورۇن باسقۇچى؛ HTTP proxy تىزىملىكىدىن دەلىللەنمىگەن نامزات بۇ ئوچۇق تور بېكەت سىنىقى ئۈچۈن ئادرېس بېرەلەيدۇ. ئۇنىڭ ھەقىقىي scheme ۋە port نى ئىشلىتىڭ، ھەمدە HTTPS تونېلغا رۇخسەت قىلامدۇ يوق تەكشۈرۈڭ.
HTTPS نىشانى HTTP proxy ئىشلىتەلەيدۇ. libcurl شۇ HTTPS يۆتكەش ئۈچۈن تونېلنى باشقۇرىدۇ. proxy تاللىمىسىدىكى http:// ۋاسىتىچى بىلەن بولغان ئۇلىنىشنى تەسۋىرلەيدۇ. ئۇنى پەقەت TLS نى ھەقىقەتەن قوبۇل قىلىدىغان proxy ئاخىرلاشقان نۇقتىسى ۋە ئۇنى قوللايدىغان libcurl قۇرۇلۇشى ئۈچۈنلا https:// غا ئۆزگەرتىڭ.
ئۈنۈملۈك يولنى قەستەن قىلىڭ
ئوچۇق proxy تاللىمىسى مۇناسىۋەتلىك proxy مۇھىت تەڭشىكىنى بىكار قىلىدۇ. چەتلىتىش ئايرىم قارار: مىراس قالغان no_proxy يەنىلا نىشاننى چەتكە قاقالايدۇ. ئەگەر بۇ handle ئۆزىگە بېرىلگەن ھەر بىر نىشان ئۈچۈن تاللانغان proxy نى ئىشلىتىشى كېرەك بولسا، شۇ سىياسەتنىڭ بىر قىسمى سۈپىتىدە CURLOPT_NOPROXY نى قۇرۇق تىزىقچە قىلىپ سەپلەڭ.
ئەكسىچە، CURLOPT_PROXY نى قۇرۇق تىزىقچە قىلىپ تەڭشەش proxy ئىشلىتىشنى ئوچۇق چەكلەيدۇ. ئۇنى NULL غا تەڭشەش ئوچۇق تەقسىملەشنى ئۆچۈرۈپ، مۇھىتقا ئاساسلانغان قىلمىشقا قايتا رۇخسەت قىلىدۇ. بۇ ئىككى قىممەت ئوخشاش بولمىغان مەقسەتلەرگە خىزمەت قىلىدۇ.
Content-Type: text/xml غا ئوخشاش نىشانغا خاس ماۋزۇ proxy نى تاللىمايدۇ. ئۇنى پەقەت ھەقىقىي تەلەپ گەۋدىسى ۋە نىشان API سى شۇ ۋاسىتە تۈرىگە ئېھتىياجلىق بولغاندا قوشۇڭ.
HTTP نەتىجىسىنىمۇ ئوقۇڭ
مۇۋەپپەقىيەتلىك curl_easy_perform تور بېكەتنىڭ مۇۋەپپەقىيەتلىك HTTP ھالىتىنى قايتۇرغانلىقىنى بىلدۈرمەيدۇ. CURLINFO_RESPONSE_CODE نى ئوقۇپ، ئەپنىڭ ھالەت بىر تەرەپ قىلىشىنى قوللىنىڭ. proxy نىڭ CONNECT جاۋابىنىڭ ئۆز قىممىتى بار، CURLINFO_HTTP_CONNECTCODE؛ تونېل رەت قىلىنىشى ھەر قانداق تور بېكەت جاۋابىدىن بۇرۇن يۈز بېرىدۇ.
CURLOPT_FAILONERROR كۆپلىگەن HTTP خاتالىقىنى مەغلۇبىيەت دەپ قارىيالايدۇ، ئەمما ئۇنىڭ ھۆججىتى دەلىللەش ئالاھىدە ھالەتلىرىنى تىلغا ئالىدۇ. proxy نىڭ 407 خىرىسىنى نىشاننىڭ ھالىتىدىن ئايرىپ تۇتۇڭ.