Перенаправлення в Python Requests: None проти порожніх значень proxy
Тримайте намір прямого маршруту явним упродовж перенаправлень, а не покладайтеся на значення None, яке видаляє запис зіставлення.
Якщо прямий запит досягає перенаправлення, а наступний обмін не вдається на proxy, дослідіть перехід. Requests заново будує налаштування, пов'язані з proxy, для перенаправлень і може знову звернутися до середовища, коли Session йому довіряє.
| Значення зіставлення | Що відбувається під час об'єднання |
|---|---|
None | Ключ видаляється, і залишається відсутній запис, який подальший прохід може заповнити із середовища. |
| Порожній рядок | Явне значення зберігається; воно може зберегти намір прямого маршруту для цієї схеми. |
Для наявної Session вкажіть схеми призначення, задіяні в прямій операції:
response = session.get(
'https://example.com/start',
proxies={'http': '', 'https': ''},
timeout=15,
)Перевірте додаткові зіставлення для конкретних хостів і власні адаптери, якщо застосунок їх надає. Цей вхід маршрутизації не перекриває всі можливі політики, які реалізують ці компоненти.
Зберігайте кожен URL у діагностиці
Записуйте початковий URL, кожне місце перенаправлення, стан відповіді та етап, що зазнає збою. Перехід з HTTP на HTTPS змінює відповідний ключ схеми; новий хост може опинитися поза правилом обходу першого хоста. Звіт, що містить лише початковий URL, приховує обидва переходи.
Спостереження однієї відповіді з вимкненим стеженням за перенаправленнями може виявити межу. Дослідіть її розташування як дані, перш ніж вирішити його запитати; не надсилайте початкові облікові дані на нове призначення без розбору.
Окрема Session з вимкненим виявленням середовища — ще один варіант, коли застосунок навмисно володіє всіма входами маршрутизації та довіри. Це також впливає на автоматичне виявлення облікових даних і CA, тому обирайте це як політику застосунку, а не як рутинний ремонт перенаправлення.