Ένας ιστότοπος χρειάζεται διαφορετικό proxy από τα υπόλοιπα HTTPS αιτήματά σας. Το Requests μπορεί να εκφράσει αυτή την επιλογή μέσα στο ίδιο το λεξικό proxy:

routes = {
    "https://reports.example": "http://reports-proxy.example:8080",
    "https": "http://default-proxy.example:8080",
}
response = requests.get(
    "https://reports.example/monthly",
    proxies=routes,
    timeout=(5, 20),
)
response.raise_for_status()

Το κλειδί που είναι ειδικό για το hostname κερδίζει για αυτόν τον προορισμό. Ένα άλλο HTTPS hostname χρησιμοποιεί την καταχώριση σε επίπεδο σχήματος. Οι τιμές περιγράφουν τη σύνδεση proxy, οπότε ένας προορισμός HTTPS μπορεί σωστά να αντιστοιχιστεί σε URL proxy HTTP. Όταν πρόκειται για επιτρεπόμενες διαδρομές δημόσιων ιστότοπων χωρίς λογαριασμούς proxy, η λίστα proxy HTTP μπορεί να παρέχει υποψηφίους για αυτές τις τιμές· κρατήστε κάθε κανόνα προορισμού ρητό.

Αντιστοιχίστε hostname, όχι URL πόρου

Στο Requests 2.32.5, το ειδικό κλειδί χτίζεται από το σχήμα του προορισμού και το αναλυμένο hostname. Δεν περιέχει τη διαδρομή, το query ή τη θύρα.

Η προσθήκη /monthly στο κλειδί του λεξικού δεν θα περιορίσει τον κανόνα σε αυτή τη διαδρομή. Ομοίως, το https://reports.example:8443 δεν είναι κλειδί ειδικό για θύρα που αναγνωρίζει αυτός ο επιλογέας. Ο κανόνας hostname ισχύει και όταν το URL προορισμού χρησιμοποιεί άλλη θύρα.

Δεν υπάρχει επέκταση μπαλαντέρ σε αυτή την αναζήτηση. Ένας κανόνας για το reports.example δεν καλύπτει αυτόματα έναν υποτομέα. Χρησιμοποιήστε ρητή απόφαση δρομολόγησης έξω από αυτό το απλό λεξικό όταν η πολιτική απαιτεί αντιστοίχιση διαδρομής, θύρας ή κατάληξης.

Μάθετε ποια εφεδρική επιλογή ακολουθεί

Η υλοποίηση ελέγχει τα κλειδιά με αυτή τη σειρά: scheme://hostname, scheme, all://hostname και μετά all. Επομένως μια καταχώριση HTTPS σε επίπεδο σχήματος υπερισχύει μιας καταχώρισης hostname για όλα τα σχήματα. Βάλτε έναν κανόνα hostname ειδικό για σχήμα πρώτο στον σχεδιασμό σας όταν αυτή είναι η επιδιωκόμενη εξαίρεση.

Λάβετε επίσης υπόψη πώς η Session σας συγχωνεύει προεπιλογές και ρυθμίσεις που προέρχονται από το περιβάλλον. Το πέρασμα αυτών των δύο ρητών καταχωρίσεων με το αίτημα κάνει σαφείς τις επιδιωκόμενες διαδρομές τους, αλλά δεν ορίζει πολιτική για κάθε άλλο σχήμα προορισμού.

Μια ανακατεύθυνση μπορεί να εισαγάγει άλλο hostname, και η επιλογή proxy είναι σχετική και για αυτόν τον νέο προορισμό. Διαβάστε τον κανόνα ως απόφαση για κάθε URL που ζητείται, όχι ως μόνιμη διαδρομή συνδεδεμένη με την πρώτη σελίδα.

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