libcurl waxay ku lifaaqdaa habaynta proxy easy handle-ka sameeya gudbinta. Dhig ciwaanka dhexdhexaadiyaha handle-kaas, adigoo ka tagaya CURLOPT_URL URL-ka loo socdo.

Qaybta soo socota waxay u malaynaysaa in libcurl la bilaabay iyo in handle yahay easy handle ansax ah:

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));

Hay buffer-ka khaladaadka oo nool inta handle-ku tixraacayo. Ka hor inta aanad ka bixin baaxaddiisa, nadiifi handle-ka ama beddel ama tirtir tilmaamaha CURLOPT_ERRORBUFFER. Magaca martigeliyaha proxy waa meel-bannaan; musharrax aan la xaqiijin oo ka yimid liiska proxy HTTP ayaa bixin kara ciwaanka imtixaanka boggan dadweynaha. Isticmaal qaabkiisa iyo dekeddiisa dhabta ah, oo hubi inuu oggol yahay tunnel-ka HTTPS.

Meesha HTTPS waxay isticmaali kartaa proxy HTTP. libcurl waxay maamushaa tunnel-ka gudbinta HTTPS taas. http:// ee ikhtiyaarka proxy wuxuu sharraxayaa xiriirka dhexdhexaadiyaha. U beddel https:// kaliya proxy endpoint dhab ahaan aqbala TLS iyo build libcurl taageera.

Ka dhig waddada wax ku oolka ah mid ula kac ah

Ikhtiyaarka proxy cad wuxuu ka sarreeyaa dejinta deegaanka proxy ee u dhigma. Dhaqaaqiddu waa go'aan gaar ah: no_proxy la dhaxlay ayaa weli ka saari kara meesha. Haddii handle-kan ay tahay inuu isticmaalo proxy la doortay meel kasta oo la siiyo, u habee CURLOPT_NOPROXY sida xarig madhan qayb ka mid ah siyaasaddaas.

Taa lidkeeda, dhigista CURLOPT_PROXY xarig madhan waxay si cad u damisaa isticmaalka proxy. Dhigista NULL waxay meesha ka saaraysaa assignment-ka cad oo waxay mar kale oggolaanaysaa dhaqanka deegaanka ku salaysan. Labadaas qiimo ayaa u adeega ujeeddooyin kala duwan.

Cinwaan gaar u ah bartilmaameedka sida Content-Type: text/xml ma dooranayo proxy. Ku dar kaliya marka jirka codsiga dhabta ah iyo API-ga meesha ay u baahan yihiin noocaas warbaahinta.

Akhri natiijada HTTP sidoo kale

curl_easy_perform guul leh macneheedu maaha in websaydku soo celiyay xaalad HTTP guul leh. Akhri CURLINFO_RESPONSE_CODE oo ku dabaq maaraynta xaaladda barnaamijka. Jawaabta CONNECT ee proxy waxay leedahay qiime u gaar ah, CURLINFO_HTTP_CONNECTCODE; diidmada tunnel-ka waxay ka hor timid jawaab kasta oo websaydh.

CURLOPT_FAILONERROR wuxuu u qaadan karaa khaladaad badan oo HTTP guuldarrooyin, laakiin dukumeentigiisu wuxuu tilmaamayaa ka-tagmooyinka xaqiijinta. Ka meer xaaladda 407 ee proxy ka duwan xaaladda meesha.

Maqaallo la xiriira