Vir 'n Basic-uitdaging van 'n HTTP-proxy, gebruik ProxyBasicAuthHandler. Hierdie gewone HTTP-voorbeeld hou die roete en die rekening in een opener:

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)

Gebruik die werklike eindpunt en die rekening wat die operateur verskaf. Die verwerker gebruik die wagwoordbestuurder vir die proxy se uitdaging; pas die beoogde proxy-URI en realm. Basiese verifikasie by die bestemming gebruik 'n ander verwerker.

Om die opener direk te roep, hou hierdie opstelling plaaslik. Die versoek-URL bly die webwerf, nie die tussenganger nie. Hierdie gewone HTTP-roete codeer nie 'n Basic-uitruiling nie.

Moenie uit hierdie voorbeeld aflei dat HTTPS-tonnels ondersteun word nie. 'n 407 tydens CONNECT gebeur by die opstelling, voor 'n gewone bestemmingsrespons; die gekose integrasie moet verifikasie daar hanteer. Om die webwerf se aanmeldverwerker te verander, kan nie daardie vroeere uitdaging regstel nie.

Proxy-URL's met geloofsbriewe is 'n ander formaat wat in ouer voorbeelde voorkom. As dit gebruik word, kodeer URL-skeiers korrek en hou die resulterende geheimbelaaide URL uit logboeke.

Verwante artikels