En explizitte Proxy op en libcurl easy handle setzen
Konfiguréiert en libcurl easy handle fir e bestëmmte Proxy a trennt Optiounsfeeler, Iwwerdroungsfeeler an den HTTP-Status.
libcurl verbënnt d'Proxy-Konfiguratioun mam easy handle, deen d'Iwwerdroung mécht. Setzt d'Adress vum Vermëttler op deem handle, wärend CURLOPT_URL d'Zil-URL bleift.
De folgende Fragment geet dovun aus, datt libcurl initialiséiert ass an handle en gültege easy handle ass:
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));
Haalt de Feelerpuffer lieweg, soulaang den handle drop verweist. Ier Dir säi Beräich verloosst, raumt den handle op oder ersetzt oder läscht säi CURLOPT_ERRORBUFFER-Pointer. Den Hostnumm vum Proxy ass en Platzhalter; en net authentifizéierte Kandidat aus der HTTP-Proxy-Lëscht kann d'Adress fir dësen ëffentleche Site-Test liwweren. Benotzt säi richtegt Schema a säi Port, a kontrolléiert, ob et den HTTPS-Tunnel erlaabt.
En HTTPS-Zil kann en HTTP-Proxy benotzen. libcurl geréiert den Tunnel fir déi HTTPS-Iwwerdroung. Den http:// an der Proxy-Optioun beschreift d'Verbindung mam Vermëttler. Ännert en op https:// nëmme fir en Proxy-Endpunkt, deen tatsächlech TLS akzeptéiert, an eng libcurl-Build, déi et ënnerstëtzt.
Maacht den effektive Wee bewosst
Eng explizitt Proxy-Optioun iwwerschreift déi entspriechend Proxy-Ëmweltastellung. D'Ëmgoen ass eng separat Entscheedung: en ierflechen no_proxy kann d'Zil nach ëmmer ausschléissen. Wann dësen handle de gewielte Proxy fir all Zil muss benotzen, dat hie kritt, konfiguréiert CURLOPT_NOPROXY als eidel String als Deel vun där Politik.
Ëmgedréit, wann CURLOPT_PROXY op eng eidel String gesat gëtt, gëtt d'Proxy-Benotzung explizitt ausgeschalt. Wann en op NULL gesat gëtt, gëtt déi explizitt Zouweisung ewechgeholl an ëmweltbaséiert Verhalen erëm erlaabt. Déi zwou Wäerter déngen ënnerschiddlechen Zwecker.
En zilspezifesche Header wéi Content-Type: text/xml wielt den Proxy net. Füügt en nëmmen derbäi, wann de riichtegen Ufro-Kierper an d'Zil-API deen Medientyp brauchen.
Liest och d'HTTP-Resultat
En erfollegräichen curl_easy_perform heescht net, datt d'Websäit en erfollegräichen HTTP-Status zréckginn huet. Liest CURLINFO_RESPONSE_CODE a wend d'Statusbehandlung vun der Applikatioun un. D'CONNECT-Antwert vum Proxy huet hire eege Wäert, CURLINFO_HTTP_CONNECTCODE; eng Tunnel-Ablehnung kënnt virun all Äntwert vun der Websäit.
CURLOPT_FAILONERROR kann vill HTTP-Feeler als Feelschléi behandelen, awer seng Dokumentatioun nennt Authentifikatiouns-Ausnamen. Halt dem Proxy säin 407-Erausfuerderung getrennt vum Status vum Zil.