Jeden web potřebuje jinou proxy než zbytek vašich HTTPS požadavků. Requests může tuto volbu vyjádřit přímo ve slovníku proxy:

routes = {
    "https://reports.example": "http://reports-proxy.example:8080",
    "https": "http://default-proxy.example:8080",
}
response = requests.get(
    "https://reports.example/monthly",
    proxies=routes,
    timeout=(5, 20),
)
response.raise_for_status()

Pro tento cíl vyhrává klíč specifický pro hostname. Jiný HTTPS hostname použije záznam platný pro celé schéma. Hodnoty popisují připojení k proxy, takže HTTPS cíl se může správně mapovat na URL HTTP proxy. Pokud jde o povolené trasy veřejných webů bez proxy účtů, seznam HTTP proxy může pro tyto hodnoty dodat kandidáty; každé pravidlo cíle držte explicitní.

Párujte hostname, ne URL zdroje

V Requests 2.32.5 se konkrétní klíč sestavuje ze schématu cíle a analyzovaného hostname. Neobsahuje cestu, dotaz ani port.

Přidání /monthly do klíče slovníku neomezí pravidlo na tuto cestu. Stejně tak https://reports.example:8443 není klíč specifický pro port, který by tento selektor rozpoznal. Pravidlo hostname platí i tehdy, když URL cíle používá jiný port.

V tomto vyhledávání nedochází k expanzi zástupných znaků. Pravidlo pro reports.example automaticky nepokrývá subdoménu. Když zásady vyžadují párování cesty, portu nebo přípony, použijte explicitní rozhodnutí o směrování mimo tento jednoduchý slovník.

Vězte, která záložní možnost následuje

Implementace kontroluje klíče v tomto pořadí: scheme://hostname, scheme, all://hostname a poté all. Záznam HTTPS platný pro schéma má tedy přednost před záznamem hostname pro všechna schémata. Pokud je to zamýšlená výjimka, dejte ve svém návrhu pravidlo hostname specifické pro schéma na první místo.

Počítejte také s tím, jak vaše Session slučuje výchozí hodnoty a nastavení odvozená z prostředí. Předání těchto dvou explicitních záznamů s požadavkem zjasní jejich zamýšlené trasy, ale nedefinuje zásadu pro každé další schéma cíle.

Přesměrování může zavést jiný hostname a výběr proxy je relevantní i pro tento nový cíl. Čtěte pravidlo jako rozhodnutí o každé požadované URL, ne jako trvalou trasu připoutanou k první stránce.

Související články