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()

Gumamit ng build ng PycURL/libcurl na sumusuporta sa mga proxy na HTTPS. Ang mga landas ng bundle ay kumakatawan sa mga nilalayong trust set: binibigyang-katibayan ng PROXY_CAINFO ang tagapamagitan; binibigyang-katibayan ng CAINFO ang TLS ng patutunguhan. Iwanan ang tahasang pagpapalit kapag ang umiiral na tiwala ay sumasakop na sa koneksiyong iyon.

Inilalarawan ng URL sa PROXY ang listener nito. Hindi kailangan ang numerikong hula sa PROXYTYPE. Para sa ordinaryong HTTP listener, nananatiling http:// ang URL kahit na HTTPS ang patutunguhan. Sa kasong iyon, nagbibigay ang listahan ng proxy na HTTP ng mga kandidatong endpoint; ang TLS bundle ng proxy ay nalalapat lamang kapag talagang gumagamit ng TLS ang listener.

Magbigay ng account sa proxy sa pamamagitan ng PROXYUSERNAME at PROXYPASSWORD kapag kailangan. Panatilihin ang pagpapatunay ng sertipiko: ang pag-off ng pagpapatunay ng proxy ay nag-aalis ng pagsusuri sa pagkakakilanlan ng tagapamagitan sa halip na i-install ang kulang na awtoridad.

Kaugnay na mga artikulo