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

Uzu PycURL/libcurl-konstruaĵon, kiu subtenas HTTPS-prokurilojn. La pakaj vojoj signifas la celitajn fidojn: PROXY_CAINFO kontrolas la peranton; CAINFO kontrolas la TLS de la celo. Forlasu rektan anstataŭigon kiam la ekzistanta fido jam kovras tiun konekton.

La URL en PROXY priskribas sian aŭskultanton. Nombra konjekto pri PROXYTYPE ne necesas. Por ordinara HTTP-aŭskultanto la URL restas http:// eĉ kun HTTPS-celo. En tiu kazo la listo de HTTP-prokuriloj provizas finpunktojn; la TLS-pakaĵo de la prokurilo validas nur kiam la aŭskultanto vere uzas TLS.

Provizu prokurilan konton per PROXYUSERNAME kaj PROXYPASSWORD laŭbezone. Konservu la atestilan kontrolon: malŝalti la prokurilan kontrolon forigas la identec-kontrolon de la peranto anstataŭ instali la mankan aŭtoritaton.

Rilataj artikoloj