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

Χρησιμοποιήστε μια έκδοση PycURL/libcurl που υποστηρίζει proxies HTTPS. Οι διαδρομές των πακέτων δηλώνουν τα επιδιωκόμενα σύνολα εμπιστοσύνης: το PROXY_CAINFO επαληθεύει τον ενδιάμεσο· το CAINFO επαληθεύει το TLS του προορισμού. Παραλείψτε ρητή παράκαμψη όταν η υπάρχουσα εμπιστοσύνη καλύπτει ήδη αυτή τη σύνδεση.

Το URL στο PROXY περιγράφει τον ακροατή του. Δεν χρειάζεται αριθμητική εικασία PROXYTYPE. Για απλό ακροατή HTTP, το URL παραμένει http:// ακόμη και με προορισμό HTTPS. Σε αυτή την περίπτωση, η λίστα proxies HTTP παρέχει υποψήφια τελικά σημεία· το πακέτο TLS του proxy ισχύει μόνο όταν ο ακροατής χρησιμοποιεί πράγματι TLS.

Δώστε λογαριασμό proxy μέσω PROXYUSERNAME και PROXYPASSWORD όταν απαιτείται. Διατηρήστε την επαλήθευση πιστοποιητικών: η απενεργοποίηση της επαλήθευσης proxy αφαιρεί τον έλεγχο ταυτότητας του ενδιάμεσου αντί να εγκαθιστά την αρχή που λείπει.

Σχετικά άρθρα