Za Basic izazov sa HTTP proksija koristite ProxyBasicAuthHandler. Ovaj obični HTTP primer drži rutu i nalog u jednom openeru:

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)

Koristite stvarni endpoint i nalog koji je dao operator. Ovaj rukovalac koristi upravljač lozinkama za izazov proksija; uskladite predviđeni proksi URI i realm. Basic autentifikacija na odredištu koristi drugi rukovalac.

Direktno pozivanje openera drži ovo podešavanje lokalnim. URL zahteva ostaje sajt, a ne posrednik. Ova otvorena HTTP ruta ne šifruje Basic razmenu.

Ne zaključujte iz ovog primera da je HTTPS tunel podržan. 407 tokom CONNECT nastaje pri postavljanju, pre običnog odgovora odredišta; izabrana integracija mora tu da obradi autentifikaciju. Promena rukovaoca za prijavu na sajtu ne može da popravi taj raniji izazov.

Proksi URL-ovi koji nose akreditive drugi su format koji se sreće u starijim primerima. Ako se koriste, ispravno kodirajte razdelnike URL-a i držite dobijeni URL sa tajnom izvan zapisa.

Povezani članci