libcurl tengir proxy-stillinguna við easy handle-ið sem framkvæmir flutninginn. Stilltu slóð milliliðarins á það handle, en láttu CURLOPT_URL vera áfangastaðar-URL.

Eftirfarandi brot gerir ráð fyrir að libcurl sé frumstillt og að handle sé gilt 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));

Haltu villubufferinum lifandi á meðan handle-ið vísar í hann. Áður en þú yfirgefur svið þess skaltu hreinsa handle-ið eða skipta um eða hreinsa CURLOPT_ERRORBUFFER bendilinn. Proxy-hýsilnafnið er staðgengill; óstaðfestur kandídat úr HTTP-proxy listanum getur veitt slóðina fyrir þetta próf á opinberri síðu. Notaðu raunverulegt skema þess og port, og athugaðu hvort það leyfi HTTPS-göngin.

HTTPS-áfangastaður getur notað HTTP-proxy. libcurl sér um göngin fyrir þann HTTPS-flutning. http:// í proxy-valkostinum lýsir tengingunni við milliliðinn. Breyttu því í https:// aðeins fyrir proxy-endapunkt sem tekur raunverulega við TLS og libcurl-útgáfu sem styður það.

Gerðu virku leiðina viljandi

Skýr proxy-valkostur hnekkir samsvarandi proxy-umhverfisstillingu. Framhjáferð er sérstök ákvörðun: arfgefið no_proxy getur samt útilokað áfangastaðinn. Ef þetta handle verður að nota valda proxy-ið fyrir hvern áfangastað sem það fær, stilltu CURLOPT_NOPROXY sem tóman streng sem hluta af þeirri stefnu.

Aftur á móti slökkvir stilling CURLOPT_PROXY á tóman streng sérstaklega á proxy-notkun. Stilling á NULL fjarlægir skýru úthlutunina og leyfir aftur hegðun sem byggir á umhverfi. Þessi tvö gildi þjóna mismunandi tilgangi.

Markmiðssértæk haus eins og Content-Type: text/xml velur ekki proxy-ið. Bættu honum aðeins við þegar raunveruleg beiðnibody og API áfangastaðarins þurfa þá miðlatregund.

Lestu líka HTTP-niðurstöðuna

Árangursríkt curl_easy_perform þýðir ekki að vefsíðan hafi skilað árangursríkri HTTP-stöðu. Lestu CURLINFO_RESPONSE_CODE og beittu stöðumeðferð forritsins. CONNECT-svar proxy-sins hefur eigið gildi, CURLINFO_HTTP_CONNECTCODE; höfnun ganganna kemur á undan hvaða vefsíðusvari sem er.

CURLOPT_FAILONERROR getur meðhöndlað margar HTTP-villur sem mistök, en skjöl þess nefna undantekningar við auðkenningu. Haltu 407-áskorun proxy-sins aðskildri frá stöðu áfangastaðarins.

Tengdir greinar