Lietotnes esošās libcurl inicializācijas un easy-handle dzīves cikla ietvaros:

curl_easy_setopt(handle, CURLOPT_URL, "https://example.com/");
curl_easy_setopt(handle, CURLOPT_PROXY, "127.0.0.1:1080");
curl_easy_setopt(handle, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);
curl_easy_setopt(handle, CURLOPT_NOPROXY, "");
curl_easy_setopt(handle, CURLOPT_CONNECTTIMEOUT, 5L);
curl_easy_setopt(handle, CURLOPT_TIMEOUT, 15L);

CURLPROXY_SOCKS5_HOSTNAME nosūta galamērķa resursdatora nosaukumu pa SOCKS ceļu. CURLPROXY_SOCKS5 tā vietā to izšķir klientā, kas var izmantot citas tīkla DNS skatījumu. C++ HTTP klientam, kas izmanto libcurl, nav nepieciešams savs SOCKS rokasspiediens tikai šī maršruta izvēlei. Atļautam publiskam galapunktam SOCKS5 starpniekserveru saraksts piedāvā resursdatora un porta kandidātus ilustratīvā loopback klausītāja aizstāšanai.

Tukša CURLOPT_NOPROXY vērtība padara starpniekservera testu apzinātu. Saglabājiet paredzētās apiešanas, pielāgojot to parastajai lietotnes politikai. Šīs opcijas ietekmē šo rokturi; citas procesa bibliotēkas un ligzdas tās nepārmanto.

Pārbaudiet opciju iestatīšanas un pārsūtīšanas atgrieztās vērtības, izmantojot lietotnes kļūdu apstrādi. Neveiksme sasniegt SOCKS vai vienoties ar to var notikt pirms jebkuras HTTP atbildes, tāpēc tā nesniedz vietnes statusa kodu.

Nepieciešamie starpniekservera akreditācijas dati izmanto atbalstītos starpniekservera autentifikācijas iestatījumus un noslēpumu mehānismu, atsevišķi no vietnes pieteikšanās. Turiet TLS pārbaudi ieslēgtu: savienojuma atvēršana caur SOCKS nenosaka HTTPS pakalpojuma identitāti.

Saistītie raksti