urllib3 ProxyManager: Basic-tunnusten lähettäminen proxy_headersissa
Toimita Basic-välityspalvelimen tunnukset ProxyManager.proxy_headers-kautta, jotta ne ovat käytettävissä HTTPS CONNECTin aikana eivätkä muutu kohdeotsakkeiksi.
ProxyManagerilla on erillinen proxy_headers-argumentti välittäjälle lähetettäville otsakkeille. Välityspalvelimelle, joka hyväksyy Basic-todennuksen:
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)
Tavalliselle HTTP-kohteelle nämä otsakkeet kulkevat välitetyn pyynnön mukana välityspalvelimelle. CONNECTia käyttävälle HTTPS-kohteelle ne kuuluvat tunnelin pystyttämiseen eivätkä jokaiseen salattuun verkkosivustopyyntöön.
Tavallinen headers-argumentti kuvaa kohdepyynnön otsakkeet. Tämä välityspalvelimen todennus kuuluu toiselle vastaanottajalle. Välityspalvelimen tilin laittaminen sinne ei vastaa aiemman CONNECT-vaihdon määrittämistä.
make_headers rakentaa Basic-otsakkeen arvon. Se ei neuvottele NTLMiä, ei valitse tuettua menetelmää automaattisesti eikä todista, että välityspalvelin hyväksyy kyseisen tilin.
TLS-kuuntelijalla varustettu välityspalvelin lisää erillisen välityspalvelimen TLS-kontekstin. Yllä oleva http://-päätepiste kuvaa tarkoituksella tavallista HTTP-kuuntelijaa, joka kuljettaa HTTPS-kohdetta tunnelin läpi.