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žijte sestavení PycURL/libcurl, které podporuje HTTPS proxy. Cesty k balíčkům označují zamýšlené sady důvěry: PROXY_CAINFO ověřuje prostředníka; CAINFO ověřuje TLS cíle. Explicitní přepsání vynechejte, pokud stávající důvěra to spojení už pokrývá.

URL v PROXY popisuje svůj listener. Číselný odhad PROXYTYPE není potřeba. U obyčejného HTTP listeneru zůstává URL http://, i když je cíl HTTPS. V takovém případě seznam HTTP proxy dodá kandidáty koncových bodů; TLS balíček proxy platí jen tehdy, když listener skutečně používá TLS.

Je-li to nutné, zadejte účet proxy přes PROXYUSERNAME a PROXYPASSWORD. Ověřování certifikátů ponechte: vypnutí ověřování proxy odstraní kontrolu totožnosti prostředníka místo instalace chybějící autority.

Související články