Python urllib: perusvälityspalvelimen todennus HTTP-pyynnöille
Rakenna eksplisiittinen urllib-avaaja HTTP-välityspalvelimen Basic-haasteelle ja erota tämä tavallinen HTTP-vaihto HTTPS CONNECT -todennuksesta.
Käytä HTTP-välityspalvelimen Basic-haasteessa ProxyBasicAuthHandler. Tämä tavallinen HTTP-esimerkki pitää reitin ja tilin yhdessä avaajassa:
import os
from urllib.request import (
ProxyHandler, ProxyBasicAuthHandler,
HTTPPasswordMgrWithDefaultRealm, build_opener,
)
proxy_url = 'http://proxy.example:8080'
passwords = HTTPPasswordMgrWithDefaultRealm()
passwords.add_password(
None, proxy_url,
os.environ['PROXY_USER'], os.environ['PROXY_PASSWORD'],
)
opener = build_opener(
ProxyHandler({'http': proxy_url}),
ProxyBasicAuthHandler(passwords),
)
with opener.open('http://example.com/', timeout=10) as response:
print(response.status)Käytä todellista päätepistettä ja operaattorin antamaa tiliä. Käsittelijä käyttää salasananhallintaa välityspalvelimen haasteeseen; sovita aiottu välityspalvelimen URI ja realm. Kohteen Basic-todennus käyttää toista käsittelijää.
Avaajan kutsuminen suoraan pitää tämän asetuksen paikallisena. Pyynnön URL pysyy verkkosivustona, ei välittäjänä. Tämä salaamaton HTTP-reitti ei salaa Basic-vaihtoa.
Älä päättele tästä esimerkistä HTTPS-tunnelin tukea. 407 CONNECTin aikana tapahtuu asetuksessa, ennen tavallista kohdevastausta; valitun integraation on käsiteltävä todennus siellä. Sivuston kirjautumiskäsittelijän vaihtaminen ei korjaa tuota aiempaa haastetta.
Tunnistetietoja sisältävät välityspalvelimen URL-osoitteet ovat toinen muoto, jota esiintyy vanhemmissa esimerkeissä. Jos käytät niitä, koodaa URL-erottimet oikein ja pidä syntyvä salaisuuden sisältävä URL poissa lokeista.