Колдонмонун учурдагы libcurl инициализациясы жана easy-handle жашоо циклинин ичинде:

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 багытталган хосттун атын SOCKS жолу менен жөнөтөт. CURLPROXY_SOCKS5 анын ордуна аны клиентте чечет, ал башка тармактын DNS көрүнүшүн колдонушу мүмкүн. libcurl колдонгон C++ HTTP клиентине ушул маршрутту тандоо үчүн гана өзүнүн SOCKS кол алышуусу талап кылынбайт. Уруксат берилген коомдук акыркы чекит үчүн, SOCKS5 прокси тизмеси мисалдагы loopback угуучусун алмаштыруу үчүн хост жана порт талапкерлерин сунуштайт.

Бош CURLOPT_NOPROXY маани прокси сынагын атайын кылат. Аны колдонмонун кадимки саясатына ылайыктоодо пландалган айланып өтүүлөрдү сактаңыз. Бул параметрлер ушул дескрипторго таасир этет; процесстеги башка китепканалар жана сокеттер аларды мураска албайт.

Параметрлерди орнотуунун жана өткөрүүнүн кайтаруу маанилерин колдонмонун ката иштетүүсү аркылуу текшериңиз. SOCKSке жетүү же аны менен сүйлөшүү ийгиликсиздиги каалаган HTTP жообунан мурун болушу мүмкүн, ошондуктан ал веб-сайттын статус кодун бербейт.

Талап кылынган прокси каттоо маалыматтары веб-сайтка кирүүдөн өзүнчө колдоого алынган прокси аутентификация параметрлерин жана жашыруун механизмди колдонот. TLS текшерүүсүн күйүк кармаңыз: SOCKS аркылуу байланыш ачуу HTTPS кызматынын инсандыгын белгилебейт.

Тектеш макалалар