Mae libcurl yn cysylltu ffurfweddiad y proxy â'r easy handle sy'n gwneud y trosglwyddiad. Gosodwch gyfeiriad y cyfryngwr ar y handle hwnnw, gan adael CURLOPT_URL fel URL y cyrchfan.

Mae'r darn canlynol yn tybio bod libcurl wedi'i gychwyn a bod handle yn easy handle dilys:

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));

Cadwch y byffer gwallau'n fyw tra bo'r handle yn cyfeirio ato. Cyn gadael ei gwmpas, glanhewch y handle neu amnewidiwch neu gliriwch ei bwyntydd CURLOPT_ERRORBUFFER. Enw gwesteiwr y proxy yw dalfan; gall ymgeisydd heb ei ddilysu o'r rhestr proxy HTTP ddarparu'r cyfeiriad ar gyfer y prawf safle cyhoeddus hwn. Defnyddiwch ei gynllun a'i borth gwirioneddol, a gwiriwch a yw'n caniatáu'r twnnel HTTPS.

Gall cyrchfan HTTPS ddefnyddio proxy HTTP. Mae libcurl yn trin y twnnel ar gyfer y trosglwyddiad HTTPS hwnnw. Mae'r http:// yn yr opsiwn proxy yn disgrifio'r cysylltiad â'r cyfryngwr. Newidiwch ef i https:// dim ond ar gyfer penbwynt proxy sy'n derbyn TLS mewn gwirionedd a chyfuniad libcurl sy'n ei gefnogi.

Gwnewch y llwybr effeithiol yn fwriadol

Mae opsiwn proxy penodol yn disodli'r gosodiad amgylchedd proxy cyfatebol. Mae osgoi yn benderfyniad ar wahân: gall no_proxy etifeddol eithrio'r gyrchfan o hyd. Os rhaid i'r handle hwn ddefnyddio'r proxy a ddewiswyd ar gyfer pob cyrchfan a roddir iddo, ffurfweddwch CURLOPT_NOPROXY fel llinyn gwag yn rhan o'r polisi hwnnw.

I'r gwrthwyneb, mae gosod CURLOPT_PROXY i linyn gwag yn analluogi defnydd proxy yn benodol. Mae ei osod i NULL yn dileu'r aseiniad penodol ac yn caniatáu ymddygiad sy'n seiliedig ar amgylchedd unwaith eto. Mae'r ddau werth hyn yn gwasanaethu dibenion gwahanol.

Nid yw pennawd sy'n benodol i'r targed fel Content-Type: text/xml yn dewis y proxy. Ychwanegwch ef dim ond pan fo corff y cais gwirioneddol ac API'r gyrchfan angen y math hwnnw o gyfrwng.

Darllenwch y canlyniad HTTP hefyd

Nid yw curl_easy_perform llwyddiannus yn golygu bod y wefan wedi dychwelyd statws HTTP llwyddiannus. Darllenwch CURLINFO_RESPONSE_CODE a chymhwyso trin statws y rhaglen. Mae gan ateb CONNECT y proxy ei werth ei hun, CURLINFO_HTTP_CONNECTCODE; mae gwrthodiad twnnel yn rhagflaenu unrhyw ymateb gan y wefan.

Gall CURLOPT_FAILONERROR drin llawer o wallau HTTP fel methiannau, ond mae ei ddogfennaeth yn nodi eithriadau dilysu. Cadwch her 407 y proxy ar wahân i statws y gyrchfan.

Erthyglau cysylltiedig