libcurl knyter proxykonfigurasjonen til easy handle-en som gjer overføringa. Angi adressa til mellommannen på den handle-en, medan CURLOPT_URL er mål-URL-en.

Utdraget nedanfor føreset at libcurl er initialisert og at handle er eit gyldig 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));

Hald feilbufferen i live så lenge handle-en viser til han. Før du forlèt området hans, ryddar du handle-en eller byter ut eller tømmer CURLOPT_ERRORBUFFER-peikaren. Vertnamnet til proxyen er ein plasshaldar; ein uautentisert kandidat frå HTTP-proxy-lista kan skaffe adressa for denne testen på ein offentleg nettstad. Bruk det faktiske scheme og port, og kontroller om han tillèt HTTPS-tunnelen.

Eit HTTPS-mål kan bruke ein HTTP-proxy. libcurl handterer tunnelen for den HTTPS-overføringa. http:// i proxyvalet skildrar sambandet til mellommannen. Endre det til https:// berre for eit proxy-endepunkt som faktisk godtek TLS, og ein libcurl-bygg som støttar det.

Gjer den effektive ruta medviten

Eit eksplisitt proxyval overstyrer den tilsvarande proxy-miljøinnstillinga. Omgåing er eit eige val: ein arva no_proxy kan framleis utelukke målet. Viss denne handle-en må bruke den valde proxyen for kvart mål han får, konfigurerer du CURLOPT_NOPROXY som ein tom streng som del av den policyen.

Omvendt slår innstillinga av CURLOPT_PROXY til ein tom streng proxybruk eksplisitt av. Innstilling til NULL fjernar den eksplisitte tildelinga og tillèt igjen miljøbasert åtferd. Desse to verdiane tener ulike føremål.

Ein målspesifikk header som Content-Type: text/xml vel ikkje proxyen. Legg han berre til når den faktiske førespurnadskroppen og API-et til målet treng den medietypen.

Les også HTTP-resultatet

Eit vellukka curl_easy_perform tyder ikkje at nettstaden returnerte ein vellukka HTTP-status. Les CURLINFO_RESPONSE_CODE og bruk status-handteringa til applikasjonen. CONNECT-svaret til proxyen har sin eigen verdi, CURLINFO_HTTP_CONNECTCODE; ei tunnelavvising kjem før kvar nettstadrespons.

CURLOPT_FAILONERROR kan handsame mange HTTP-feil som feil, men dokumentasjonen hans peikar på autentiseringsunntak. Hald 407-utfordringa til ein proxy skild frå statusen til målet.

Relaterte artiklar