Unutar postojeće inicijalizacije libcurl u aplikaciji i životnog ciklusa easy-handle ručke:

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 šalje ime hosta odredišta duž SOCKS putanje. CURLPROXY_SOCKS5 umjesto toga ga razrješava na klijentu, koji može koristiti DNS pogled druge mreže. C++ HTTP klijent koji koristi libcurl ne treba vlastiti SOCKS handshake samo da bi odabrao ovu rutu. Za dopuštenu javnu krajnju točku, popis SOCKS5 proxyja nudi kandidate za host i port koji zamjenjuju ilustrativni loopback slušatelj.

Prazna CURLOPT_NOPROXY vrijednost čini test proxyja namjernim. Sačuvajte predviđena zaobilaženja kada ga prilagođavate normalnoj politici aplikacije. Ove opcije utječu na ovu ručku; druge biblioteke i socketti u procesu ih ne nasljeđuju.

Provjerite povratne vrijednosti postavljanja opcija i prijenosa kroz obradu pogrešaka aplikacije. Neuspjeh da se dođe do SOCKS-a ili pregovara s njim može prethoditi svakom HTTP odgovoru, pa ne daje statusni kod web stranice.

Potrebni proxy akreditivi koriste podržane postavke proxy autentifikacije i mehanizam tajni, odvojeno od prijave na web stranicu. Držite TLS provjeru uključenom: otvaranje veze kroz SOCKS ne uspostavlja identitet HTTPS usluge.

Povezani članci