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

Uporabite gradnjo PycURL/libcurl, ki podpira proxyje HTTPS. Poti paketov označujejo predvidene nabore zaupanja: PROXY_CAINFO preveri posrednika; CAINFO preveri TLS cilja. Izpustite izrecno prepisovanje, ko obstoječe zaupanje to povezavo že pokriva.

URL v PROXY opisuje svoj poslušalec. Številčno ugibanje PROXYTYPE ni potrebno. Pri običajnem poslušalcu HTTP URL ostane http://, tudi ko je cilj HTTPS. V tem primeru seznam proxyjev HTTP ponudi kandidate za končne točke; paket TLS proxyja velja le, ko poslušalec dejansko uporablja TLS.

Po potrebi navedite račun proxyja prek PROXYUSERNAME in PROXYPASSWORD. Ohranite preverjanje potrdil: izklop preverjanja proxyja odstrani preverjanje identitete posrednika, namesto da bi namestil manjkajočo institucijo.

Sorodni članki