Egy HTTP-proxy Basic kihívásához használja ezt: ProxyBasicAuthHandler. Ez a szokásos HTTP-példa az útvonalat és a fiókot egyetlen openerben tartja:

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)

Használja a valódi végpontot és az üzemeltető által biztosított fiókot. A kezelő a jelszókezelőt használja a proxy kihívásához; egyeztesse a szándékolt proxy URI-t és realm-et. A cél Basic hitelesítése másik kezelőt használ.

Az opener közvetlen hívása helyben tartja ezt a beállítást. A kérés URL-je továbbra is a webhely, nem a közvetítő. Ez a titkosítatlan HTTP-útvonal nem titkosítja a Basic cserét.

Ne következtessen ebből a példából HTTPS-alagút támogatására. A 407 CONNECT közben a beállításnál, a cél szokásos válasza előtt történik; a választott integrációnak ott kell kezelnie a hitelesítést. A webhely bejelentkezési kezelőjének cseréje nem javítja a korábbi kihívást.

A hitelesítő adatokat tartalmazó proxy URL-ek másik formátum, amely régebbi példákban fordul elő. Ha használja őket, kódolja helyesen az URL-elválasztókat, és tartsa a keletkező titkos URL-t a naplókon kívül.

Kapcsolódó cikkek