from io import BytesIO
import pycurl

body = BytesIO()
curl = pycurl.Curl()
try:
    curl.setopt(pycurl.URL, "https://api.example/")
    curl.setopt(pycurl.PROXY, "https://proxy.example:8443")
    curl.setopt(pycurl.PROXY_CAINFO, "/path/to/proxy-ca.pem")
    curl.setopt(pycurl.CAINFO, "/path/to/origin-ca.pem")
    curl.setopt(pycurl.CONNECTTIMEOUT, 5)
    curl.setopt(pycurl.TIMEOUT, 30)
    curl.setopt(pycurl.WRITEDATA, body)
    curl.perform()
finally:
    curl.close()

ऐसा PycURL/libcurl बिल्ड उपयोग करें जो HTTPS प्रॉक्सी का समर्थन करता हो। बंडल पथ इच्छित ट्रस्ट सेट दर्शाते हैं: PROXY_CAINFO मध्यस्थ को सत्यापित करता है; CAINFO गंतव्य के TLS को सत्यापित करता है। जब मौजूदा ट्रस्ट उस कनेक्शन को पहले से कवर करता है तो स्पष्ट ओवरराइड छोड़ दें।

PROXY में URL उसके लिसनर का वर्णन करता है। संख्यात्मक PROXYTYPE अनुमान की जरूरत नहीं है। सादे HTTP लिसनर के लिए HTTPS गंतव्य होने पर भी URL http:// ही रहता है। उस स्थिति में HTTP प्रॉक्सी सूची एंडपॉइंट उम्मीदवार देती है; प्रॉक्सी TLS बंडल केवल तभी लागू होता है जब लिसनर वास्तव में TLS उपयोग करता हो।

आवश्यक होने पर PROXYUSERNAME और PROXYPASSWORD के माध्यम से प्रॉक्सी खाता दें। प्रमाणपत्र सत्यापन बनाए रखें: प्रॉक्सी सत्यापन बंद करना अनुपस्थित प्राधिकरण स्थापित करने के बजाय मध्यस्थ की पहचान जाँच हटा देता है।

संबंधित लेख