Επιλογή διαδρομών proxy στο HTTPX με proxy και mounts
Χρησιμοποιήστε proxy και προσαρτήσεις transport του HTTPX με σωστό σχήμα, ρητή συμπεριφορά περιβάλλοντος και χωριστά όρια σύνδεσης και ανάγνωσης.
Χρησιμοποιήστε proxy= όταν ένα τελικό σημείο πρέπει να χειρίζεται τα αιτήματα του πελάτη. Χρησιμοποιήστε mounts= όταν τα σχήματα προορισμού χρειάζονται διαφορετικές διαδρομές. Τα παραδείγματα χρησιμοποιούν αυτές τις διεπαφές HTTPX· έργο με το παλαιότερο API proxies= χρειάζεται ρύθμιση για εκείνη την έκδοση.
Ένα τελικό σημείο
import httpx
timeout = httpx.Timeout(15.0, connect=5.0)
with httpx.Client(
proxy="http://127.0.0.1:8080",
trust_env=False,
timeout=timeout,
) as client:
response = client.get("https://example.com/")
response.raise_for_status()
print(response.status_code)
Αντικαταστήστε το τοπικό σημείο ακρόασης με ενεργό HTTP proxy. Ένας υποψήφιος από τη λίστα HTTP proxy χρειάζεται ακόμη δοκιμή με τον προορισμό σας. Στόχος HTTPS μπορεί να χρησιμοποιεί αυτό το σημείο http:// μέσω CONNECT. Η αλλαγή του σχήματος σε https:// ζητά TLS στον ίδιο τον proxy, με απαραίτητη υποστήριξη από πελάτη και σημείο ακρόασης.
Χωριστές διαδρομές ανά σχήμα προορισμού
import httpx
mounts = {
"http://": httpx.HTTPTransport(
proxy="http://127.0.0.1:8080",
trust_env=False,
),
"https://": httpx.HTTPTransport(
proxy="http://127.0.0.1:8081",
trust_env=False,
),
}
with httpx.Client(
mounts=mounts,
trust_env=False,
timeout=httpx.Timeout(15.0, connect=5.0),
) as client:
response = client.get("https://example.com/")
response.raise_for_status()
print(response.status_code)
Τα κλειδιά προσάρτησης ταιριάζουν με τα URL στόχου. Οι στόχοι HTTP επιλέγουν εδώ τη θύρα 8080 και οι HTTPS τη 8081. Η τιμή του proxy περιγράφει το πρωτόκολλο του ίδιου του σημείου ακρόασης, άρα η προσάρτηση HTTPS μπορεί σωστά να περιέχει proxy http://. Βάλτε τα δικά σας σημεία και ελέγξτε και τα δύο σχήματα προορισμού.
Και οι δύο συνταγές ορίζουν trust_env=False στον πελάτη και, όπου παρέχονται, στα transports. Αλλιώς το HTTPX διαβάζει από προεπιλογή μεταβλητές περιβάλλοντος proxy και πιστοποιητικών. Αν η εγκατάσταση εξαρτάται από αυτές, κρατήστε ενεργό τον εντοπισμό ή ορίστε ρητά διαδρομές και εμπιστοσύνη. Για ιδιωτική εμπιστοσύνη χρησιμοποιήστε το πλαίσιο TLS και τη ρύθμιση CA της έκδοσής σας HTTPX· διατηρήστε ενεργή την επαλήθευση προορισμού. Η εμπιστοσύνη στον HTTPS proxy μπορεί να είναι χωριστή από την εμπιστοσύνη στον προορισμό.
Το httpx.Timeout(15.0, connect=5.0) παρακάμπτει το όριο σύνδεσης και δίνει την προεπιλεγμένη τιμή στα άλλα ρυθμισμένα μέρη. Ανάγνωση, εγγραφή και αναμονή pool έχουν χωριστά όρια· δεκαπέντε δευτερόλεπτα δεν είναι συνολική προθεσμία πραγματικού χρόνου. Ένα timeout pool μπορεί να σημαίνει ότι άλλη εργασία κρατά τις διαθέσιμες συνδέσεις. Κλείστε σωστά πελάτες και αποκρίσεις ροής πριν το θεωρήσετε απόδειξη μη προσβάσιμου proxy.