urllib3 ProxyManager: Basic деректерін proxy_headers ішінде жіберу
Basic прокси деректерін ProxyManager.proxy_headers арқылы беріңіз, олар HTTPS CONNECT кезінде қолжетімді болып, мақсат тақырыптарына айналмайды.
ProxyManager-де делдалға жіберілетін тақырыптар үшін бөлек proxy_headers аргументі бар. Basic аутентификациясын қабылдайтын прокси үшін:
import urllib3
proxy_headers = urllib3.make_headers(
proxy_basic_auth=f'{proxy_user}:{proxy_password}'
)
with urllib3.ProxyManager(
'http://proxy.example:8080',
proxy_headers=proxy_headers,
timeout=urllib3.Timeout(connect=5, read=10),
) as http:
response = http.request('GET', 'https://service.example/data')
print(response.status)
Қарапайым HTTP мақсаты үшін бұл тақырыптар қайта жіберілген сұраныспен бірге проксиге барады. CONNECT арқылы HTTPS мақсаты үшін олар туннель орнатуға жатады, әр шифрланған сайт сұранысына емес.
Қарапайым headers аргументі мақсат сұранысының тақырыптарын сипаттайды. Бұл прокси аутентификациясы басқа алушыға тиесілі. Прокси есептік жазбасын сол жерге қою бұрынғы CONNECT алмасуын конфигурациялауға тең емес.
make_headers Basic тақырыбының мәнін құрады. Ол NTLM туралы келіссөз жүргізбейді, қолдау көрсетілетін схеманы автоматты түрде таңдамайды және проксидің сол есептік жазбаны қабылдайтынын дәлелдемейді.
TLS тыңдаушысы бар прокси бөлек прокси TLS контекстін қосады. Жоғарыдағы http:// соңғы нүктесі туннель арқылы HTTPS мақсатын тасымалдайтын қарапайым HTTP тыңдаушысын әдейі сипаттайды.