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.

Ähnlech Artikelen