Przekierowania w Python Requests: None kontra puste wartości proxy
Utrzymuj intencję bezpośredniego trasowania jawnie przez przekierowania, zamiast polegać na wartości None, która usuwa wpis mapowania.
Jeśli bezpośrednie żądanie trafi na przekierowanie, a kolejna wymiana nie powiedzie się na proxy, zbadaj przejście. Requests odbudowuje ustawienia związane z proxy dla przekierowań i może ponownie odwołać się do środowiska, gdy Session mu ufa.
| Wartość mapowania | Co dzieje się podczas łączenia |
|---|---|
None | Klucz jest usuwany, pozostawiając brakujący wpis, który późniejszy przebieg może uzupełnić ze środowiska. |
| Pusty ciąg | Jawna wartość pozostaje; może zachować intencję bezpośredniego trasowania dla tego schematu. |
Dla istniejącej Session podaj schematy docelowe zaangażowane w bezpośrednią operację:
response = session.get(
'https://example.com/start',
proxies={'http': '', 'https': ''},
timeout=15,
)Sprawdź dodatkowe mapowania specyficzne dla hosta i niestandardowe adaptery, jeśli aplikacja je udostępnia. To wejście trasowania nie nadpisuje każdej możliwej polityki realizowanej przez te komponenty.
Zachowaj każdy URL w diagnostyce
Zapisz oryginalny URL, każdą lokalizację przekierowania, status odpowiedzi i etap, który zawodzi. Przejście z HTTP na HTTPS zmienia odpowiedni klucz schematu; nowy host może wypaść poza regułę obejścia pierwszego hosta. Raport zawierający tylko początkowy URL ukrywa oba przejścia.
Obserwacja jednej odpowiedzi z wyłączonym podążaniem za przekierowaniami może ujawnić granicę. Zbadaj jej lokalizację jako dane, zanim zdecydujesz się o nią poprosić; nie wysyłaj bezkrytycznie oryginalnych danych uwierzytelniających do nowego miejsca docelowego.
Dedykowana Session z wyłączonym wykrywaniem środowiska to kolejna opcja, gdy aplikacja świadomie posiada wszystkie wejścia trasowania i zaufania. Wpływa to również na automatyczne wykrywanie poświadczeń i CA, więc wybierz to jako politykę aplikacji, a nie rutynową naprawę przekierowania.