აპლიკაციის არსებული 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 მნიშვნელობა პროქსის ტესტს განზრახ ხდის. შეინარჩუნეთ განზრახული გვერდის ავლები, როცა მას აპლიკაციის ჩვეულ პოლიტიკას ურგებთ. ეს პარამეტრები მოქმედებს ამ handle-ზე; პროცესში არსებული სხვა ბიბლიოთეკები და სოკეტები მათ არ მემკვიდრეობით იღებენ.

შეამოწმეთ პარამეტრების დაყენებისა და გადაცემის დაბრუნების მნიშვნელობები აპლიკაციის შეცდომების დამუშავების მეშვეობით. SOCKS-ზე მიღწევის ან მასთან მოლაპარაკების წარუმატებლობა შეიძლება მოხდეს ნებისმიერ HTTP პასუხამდე, ამიტომ ის ვებსაიტის სტატუსის კოდს არ იძლევა.

საჭირო პროქსის სერტიფიკატები იყენებენ მხარდაჭერილ პროქსის ავთენტიფიკაციის პარამეტრებსა და საიდუმლოების მექანიზმს, ვებსაიტზე შესვლისგან დამოუკიდებლად. დატოვეთ TLS შემოწმება ჩართული: SOCKS-ის მეშვეობით კავშირის გახსნა არ ადგენს HTTPS სერვისის იდენტობას.

დაკავშირებული სტატიები