అప్లికేషన్ యొక్క ప్రస్తుత 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 సేవ యొక్క గుర్తింపును స్థాపించదు.

సంబంధిత వ్యాసాలు