Перанакіраванні 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, таму выбірайце гэта як палітыку праграмы, а не як звычайны рамонт перанакіравання.