urllib3 ProxyManager: send Basic-legitimasjon i proxy_headers
Oppgi Basic-proxylegitimasjon via ProxyManager.proxy_headers slik at den er tilgjengelig under HTTPS CONNECT uten å bli destinasjonsheadere.
ProxyManager har et eget proxy_headers-argument for headere som sendes til mellomleddet. For en proxy som godtar Basic-autentisering:
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)
For en vanlig HTTP-destinasjon reiser disse headerne med den videresendte forespørselen til proxyen. For en HTTPS-destinasjon med CONNECT hører de til tunneloppsettet og ikke til hver krypterte nettstedsforespørsel.
Det vanlige headers-argumentet beskriver forespørselsheadere for destinasjonen. Denne proxyautentiseringen tilhører en annen mottaker. Å plassere proxykontoen der tilsvarer ikke å konfigurere den tidligere CONNECT-utvekslingen.
make_headers bygger verdien for Basic-headeren. Det forhandler ikke NTLM, velger ikke automatisk et støttet skjema og beviser ikke at proxyen godtar den kontoen.
En proxy med en TLS-lytter legger til en egen proxy-TLS-kontekst. http://-endepunktet ovenfor beskriver med vilje en vanlig HTTP-lytter som bærer en HTTPS-destinasjon gjennom en tunnel.