ProxyManager turi atskirą argumentą proxy_headers tarpininkui siunčiamoms antraštėms. Tarpiniam serveriui, kuris priima Basic autentifikaciją:

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)

Paprastam HTTP tikslui šios antraštės keliauja kartu su persiunčiama užklausa į tarpinį serverį. HTTPS tikslui per CONNECT jos priklauso tunelio sąrankai, o ne kiekvienai užšifruotai svetainės užklausai.

Įprastas headers argumentas aprašo tikslo užklausos antraštes. Ši tarpinio serverio autentifikacija priklauso kitam gavėjui. Tarpinio serverio paskyros įrašymas ten nelygus ankstesnio CONNECT mainų konfigūravimui.

make_headers sudaro Basic antraštės reikšmę. Jis nesidera dėl NTLM, automatiškai nepasirenka palaikomos schemos ir neįrodo, kad tarpinis serveris priima tą paskyrą.

Tarpinis serveris su TLS klausytuvu prideda atskirą tarpinio serverio TLS kontekstą. Aukščiau nurodytas http:// galutinis taškas sąmoningai aprašo įprastą HTTP klausytuvą, kuris per tunelį perduoda HTTPS tikslą.

Susiję straipsniai