Az irodai proxy egy fiókot kér. A mögötte lévő webhely egy másikat. A Requestsnek külön bemenete van ehhez a két Basic bejelentkezéshez: a proxy URL-jében lévő hitelesítő adatok és a kérés auth argumentuma.

from urllib.parse import quote
import requests

proxy_url = (
    f"http://{quote(proxy_user, safe='')}:"
    f"{quote(proxy_password, safe='')}@proxy.example:8080"
)
response = requests.get(
    "https://reports.example/private/",
    proxies={"https": proxy_url},
    auth=(site_user, site_password),
    timeout=(5, 20),
)
response.raise_for_status()

A négy fiókváltozó az alkalmazás hitelesítő adatokra vonatkozó beállításaiból származik. A proxy felhasználónevének és jelszavának külön kódolása megőrzi az olyan karaktereket, mint az at jel, anélkül hogy URL-elválasztóvá alakítaná őket.

A szótár https kulcsa választja ezt az útvonalat egy HTTPS-célhoz. Az értéke továbbra is http://-vel kezdődik, mert ez az a protokoll, amellyel ez a példaproxy elérhető.

Ennél a HTTPS-kérésnél a proxy bejelentkezése a CONNECT-cseréhez tartozik. A webhely bejelentkezése a kialakított alagúton átmenő későbbi kéréshez tartozik. Ha az adapter a saját URL-jéből származtatja a proxy engedélyezését, az az érintett ugrásnál marad; ehhez a Basic esethez nincs szükség kombinált hitelesítési osztályra.

A 407 a közvetítő kihívását jelzi. A webhelytől jövő 401 a cél kihívását jelzi. E válasz alapján döntsd el, melyik beállított fiók szorul figyelemre.

Kapcsolódó cikkek