Jedna witryna potrzebuje innego serwera proxy niż pozostałe Twoje żądania HTTPS. Requests może wyrazić ten wybór w samym słowniku serwerów 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()

Dla tego celu wygrywa klucz właściwy dla nazwy hosta. Inna nazwa hosta HTTPS korzysta z wpisu obejmującego cały schemat. Wartości opisują połączenie z serwerem proxy, więc cel HTTPS można poprawnie przypisać do adresu URL serwera proxy HTTP. Gdy są to dozwolone trasy publicznych witryn bez kont proxy, lista serwerów proxy HTTP może dostarczyć kandydatów do tych wartości; utrzymuj każdą regułę celu jawnie.

Dopasowuj nazwę hosta, a nie adres URL zasobu

W Requests 2.32.5 konkretny klucz jest budowany ze schematu celu i przeanalizowanej nazwy hosta. Nie zawiera ścieżki, zapytania ani portu.

Dodanie /monthly do klucza słownika nie ograniczy reguły do tej ścieżki. Podobnie https://reports.example:8443 nie jest kluczem właściwym dla portu, który rozpoznaje ten selektor. Reguła nazwy hosta obowiązuje także wtedy, gdy adres URL celu używa innego portu.

W tym wyszukiwaniu nie ma rozwijania symboli wieloznacznych. Reguła dla reports.example nie obejmuje automatycznie subdomeny. Gdy zasady wymagają dopasowania ścieżki, portu lub sufiksu, użyj jawnej decyzji o trasowaniu poza tym prostym słownikiem.

Wiedz, która opcja awaryjna jest następna

Implementacja sprawdza klucze w tej kolejności: scheme://hostname, scheme, all://hostname, a następnie all. Wpis HTTPS obejmujący cały schemat ma więc pierwszeństwo przed wpisem nazwy hosta dla wszystkich schematów. Gdy to jest zamierzony wyjątek, umieść w projekcie regułę nazwy hosta właściwą dla schematu na pierwszym miejscu.

Uwzględnij też sposób, w jaki Twoja Session łączy wartości domyślne i ustawienia pochodzące ze środowiska. Przekazanie tych dwóch jawnych wpisów z żądaniem jasno określa ich zamierzone trasy, ale nie definiuje polityki dla każdego innego schematu celu.

Przekierowanie może wprowadzić inną nazwę hosta, a wybór serwera proxy dotyczy także tego nowego celu. Czytaj regułę jako decyzję o każdym żądanym adresie URL, a nie jako stałą trasę przypisaną do pierwszej strony.

Powiązane artykuły