Fyrir Basic-áskorun frá HTTP-milliþjóni skaltu nota ProxyBasicAuthHandler. Þetta venjulega HTTP-dæmi heldur leiðinni og reikningnum í einum opnara:

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)

Notaðu raunverulega endapunktinn og reikninginn sem rekstraraðilinn útvegar. Meðhöndlarinn notar lykilorðastjórann fyrir áskorun milliþjónsins; stemmdu við fyrirhugaða milliþjóns-URI og realm. Basic-staðfesting á áfangastað notar annan meðhöndlara.

Að kalla á opnarann beint heldur þessari uppsetningu staðbundinni. URL beiðninar er áfram vefsvæðið, ekki milliliðurinn. Þessi ódulkóðaða HTTP-leið dulkóðar ekki Basic-skipti.

Ekki álykta um HTTPS-göngstuðning út frá þessu dæmi. 407 við CONNECT á sér stað við uppsetningu, fyrir venjulegt svar áfangastaðar; valda samþættingin verður að meðhöndla staðfestingu þar. Að skipta um innskráningarmeðhöndlara vefsins getur ekki lagfært þá fyrri áskorun.

Milliþjóns-URL með auðkennum eru annað snið sem finnst í eldri dæmum. Ef þau eru notuð skaltu kóða URL-aðgreini rétt og halda leyndarmálinu sem URL-inið ber utan logga.

Tengdir greinar