libcurl easy handle वर स्पष्ट प्रॉक्सी ठेवणे
विशिष्ट प्रॉक्सीसाठी libcurl easy handle कॉन्फिगर करा आणि option त्रुटी, transfer अपयश तसेच HTTP स्थिती वेगळी करा.
libcurl प्रॉक्सी कॉन्फिगरेशन transfer करणाऱ्या easy handle ला जोडते. मध्यस्थाचा पत्ता त्या handle वर सेट करा, CURLOPT_URL गंतव्य URL म्हणून ठेवा.
खालील तुकडा गृहीत धरतो की libcurl सुरू झाले आहे आणि handle वैध easy handle आहे:
char error[CURL_ERROR_SIZE] = {0};
CURLcode result;
result = curl_easy_setopt(handle, CURLOPT_ERRORBUFFER, error);
if (result == CURLE_OK)
result = curl_easy_setopt(handle, CURLOPT_URL,
"https://example.com/");
if (result == CURLE_OK)
result = curl_easy_setopt(handle, CURLOPT_PROXY,
"http://proxy.example:8080");
if (result == CURLE_OK)
result = curl_easy_perform(handle);
if (result != CURLE_OK)
fprintf(stderr, "%s\n", error[0] ? error
: curl_easy_strerror(result));
handle त्याचा संदर्भ घेत असताना त्रुटी बफर जिवंत ठेवा. त्याची व्याप्ती सोडण्यापूर्वी handle साफ करा किंवा त्याचा CURLOPT_ERRORBUFFER पॉइंटर बदला किंवा साफ करा. प्रॉक्सीचे होस्टनाव प्लेसहोल्डर आहे; HTTP प्रॉक्सी यादीमधील अनुमोदित न केलेला उमेदवार या सार्वजनिक साइट चाचणीसाठी पत्ता देऊ शकतो. त्याची प्रत्यक्ष स्कीम आणि पोर्ट वापरा, आणि ते HTTPS सुरंगला परवानगी देते का ते तपासा.
HTTPS गंतव्य HTTP प्रॉक्सी वापरू शकते. libcurl त्या HTTPS transfer साठी सुरंग हाताळते. प्रॉक्सी option मधील http:// मध्यस्थाशी असलेले कनेक्शन वर्णन करते. ते https:// मध्ये बदला केवळ अशा प्रॉक्सी एंडपॉइंटसाठी जे प्रत्यक्षात TLS स्वीकारते आणि असे libcurl build जे त्यास समर्थन देते.
प्रभावी मार्ग जाणीवपूर्वक करा
स्पष्ट प्रॉक्सी option संबंधित प्रॉक्सी पर्यावरण सेटिंग ओव्हरराइड करते. बायपास हा वेगळा निर्णय आहे: वारसाहक्काने मिळालेले no_proxy तरीही गंतव्य वगळू शकते. या handle ला दिलेल्या प्रत्येक गंतव्यासाठी निवडलेली प्रॉक्सी वापरायची असल्यास, त्या धोरणाचा भाग म्हणून CURLOPT_NOPROXY रिकामी स्ट्रिंग म्हणून कॉन्फिगर करा.
उलटपक्षी, CURLOPT_PROXY रिकाम्या स्ट्रिंगवर सेट केल्यास प्रॉक्सी वापर स्पष्टपणे बंद होतो. ते NULL वर सेट केल्यास स्पष्ट नेमणूक काढून टाकली जाते आणि पर्यावरण-आधारित वर्तन पुन्हा परवानगी दिली जाते. ही दोन मूल्ये वेगवेगळ्या उद्देशांना पूर्ण करतात.
Content-Type: text/xml सारखे लक्ष्य-विशिष्ट हेडर प्रॉक्सी निवडत नाही. प्रत्यक्ष विनंती बॉडी आणि गंतव्य API ला त्या मीडिया प्रकाराची आवश्यकता असेल तेव्हाच ते जोडा.
HTTP निकालही वाचा
यशस्वी curl_easy_perform म्हणजे वेबसाइटने यशस्वी HTTP स्थिती परत केली असे नाही. CURLINFO_RESPONSE_CODE वाचा आणि अनुप्रयोगाची स्थिती हाताळणी लागू करा. प्रॉक्सीच्या CONNECT उत्तराचे स्वतःचे मूल्य आहे, CURLINFO_HTTP_CONNECTCODE; सुरंग नाकारणे कोणत्याही वेबसाइट प्रतिसादापूर्वी येते.
CURLOPT_FAILONERROR अनेक HTTP त्रुटींना अपयश मानू शकते, परंतु त्याचे दस्तऐवज प्रमाणीकरण अपवाद नमूद करते. प्रॉक्सीचे 407 आव्हान गंतव्याच्या स्थितीपासून वेगळे ठेवा.