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 साँच्चै स्वीकार गर्ने प्रोक्सी endpoint र यसलाई समर्थन गर्ने 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 चुनौतीलाई गन्तव्यको स्थितिबाट अलग राख्नुहोस्।

सम्बन्धित लेखहरू