In eksplisite proxy op in libcurl easy handle sette
Konfigurearje in libcurl easy handle foar in spesifike proxy en skied opsjeflatten, transferflatte en HTTP-status.
libcurl ferbynt de proxy-konfiguraasje oan it easy handle dat de transfer útfiert. Set it adres fan de tuskenpersoan op dat handle, wylst CURLOPT_URL de bestimming-URL bliuwt.
It folgjende fragmint giet derfan út dat libcurl inisjalisearre is en dat handle in jildich easy handle is:
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));
Hâld de flaterbuffer libben wylst it handle dêrnei ferwiist. Foardat jo syn berik ferlitte, romje it handle op of ferfange of wiskje syn CURLOPT_ERRORBUFFER-wizer. De proxy-hostnamme is in plakhâlder; in net-autentisearre kandidaat út 'e HTTP-proxy-list kin it adres leverje foar dizze test fan in iepenbiere side. Brûk syn werklike skema en poarte, en kontrolearje oft it de HTTPS-tunnel tastean.
In HTTPS-bestimming kin in HTTP-proxy brûke. libcurl beheart de tunnel foar dy HTTPS-transfer. De http:// yn 'e proxy-opsje beskriuwt de ferbining mei de tuskenpersoan. Feroarje it nei https:// allinnich foar in proxy-einpunt dat eins TLS akseptearret en in libcurl-bou dat dat stipet.
Meitsje de effektive rûte bewust
In eksplisite proxy-opsje oerskriuwt de oerienkommende proxy-omjouwingsynstelling. Omgean is in aparte beslissing: in erfd no_proxy kin de bestimming noch altyd útslute. As dit handle de keazen proxy brûke moat foar elke bestimming dy't it krijt, konfigurearje CURLOPT_NOPROXY as in lege tekenrige as part fan dy belied.
Oarsom, it ynstellen fan CURLOPT_PROXY op in lege tekenrige skeakelet proxy-gebrûk eksplisyt út. It ynstellen op NULL ferwideret de eksplisite tawizing en lit wer omjouwing-basearre gedrach ta. Dy twa wearden tsjinje ferskillende doelen.
In doelspesifike kop lykas Content-Type: text/xml selektearret de proxy net. Foegje it allinnich ta as it werklike oanfraachlichem en de bestimming-API dat mediaype nedich hawwe.
Lês ek it HTTP-resultaat
In suksesfolle curl_easy_perform betsjut net dat de webside in suksesfolle HTTP-status weromjoech. Lês CURLINFO_RESPONSE_CODE en pas de statusbehanneling fan 'e applikaasje ta. It CONNECT-antwurd fan 'e proxy hat syn eigen wearde, CURLINFO_HTTP_CONNECTCODE; in tunnel-ôfwizing komt foar elk antwurd fan 'e webside.
CURLOPT_FAILONERROR kin in soad HTTP-flatten as mislearring behannelje, mar syn dokumintaasje neamt autentikaasje-útsûnderingen. Hâld de 407-útdaging fan in proxy apart fan 'e status fan' e bestimming.