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

Použite zostavenie PycURL/libcurl, ktoré podporuje HTTPS proxy. Cesty k balíkom označujú zamýšľané sady dôvery: PROXY_CAINFO overuje sprostredkovateľa; CAINFO overuje TLS cieľa. Explicitné prepísanie vynechajte, ak existujúca dôvera to spojenie už pokrýva.

URL v PROXY opisuje svoj listener. Číselný odhad PROXYTYPE nie je potrebný. Pri obyčajnom HTTP listeneri zostáva URL http://, aj keď je cieľ HTTPS. V takom prípade zoznam HTTP proxy dodá kandidátov koncových bodov; TLS balík proxy platí len vtedy, keď listener skutočne používa TLS.

Ak treba, zadajte účet proxy cez PROXYUSERNAME a PROXYPASSWORD. Overovanie certifikátov ponechajte: vypnutie overovania proxy odstráni kontrolu totožnosti sprostredkovateľa namiesto inštalácie chýbajúcej autority.

Súvisiace články