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

Naudokite PycURL/libcurl versiją, palaikančią HTTPS tarpinius serverius. Paketų keliai žymi numatytus pasitikėjimo rinkinius: PROXY_CAINFO tikrina tarpininką; CAINFO tikrina paskirties TLS. Praleiskite aiškų perrašymą, kai esamas pasitikėjimas jau apima tą ryšį.

URL, esantis PROXY, aprašo jo klausytoją. Skaitmeninio PROXYTYPE spėjimo nereikia. Paprastam HTTP klausytojui URL lieka http://, net kai paskirtis yra HTTPS. Tokiu atveju HTTP tarpinių serverių sąrašas pateikia galinių taškų kandidatus; tarpinio serverio TLS paketas taikomas tik tada, kai klausytojas iš tikrųjų naudoja TLS.

Jei reikia, nurodykite tarpinio serverio paskyrą per PROXYUSERNAME ir PROXYPASSWORD. Išlaikykite sertifikatų tikrinimą: išjungus tarpinio serverio tikrinimą, pašalinama tarpininko tapatybės patikra, o ne įdiegiama trūkstama institucija.

Susiję straipsniai