Een Requests-proxy kiezen voor één website
Geef één bestemmings-hostnaam een andere proxy in Requests en begrijp de grenzen van de overeenkomst en de terugvalorde.
Eén website heeft een andere proxy nodig dan de rest van je HTTPS-verzoeken. Requests kan die keuze in het proxywoordenboek zelf uitdrukken:
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()
Voor die bestemming wint de hostnaamspecifieke sleutel. Een andere HTTPS-hostnaam gebruikt de vermelding voor het hele schema. De waarden beschrijven de proxyverbinding, dus een HTTPS-bestemming kan correct aan een HTTP-proxy-URL worden gekoppeld. Wanneer dit toegestane routes van openbare sites zonder proxyaccounts zijn, kan de HTTP-proxylijst kandidaten voor die waarden leveren; houd elke bestemmingsregel expliciet.
Koppel een hostnaam, geen resource-URL
In Requests 2.32.5 wordt de specifieke sleutel opgebouwd uit het schema van de bestemming en de geparseerde hostnaam. Hij bevat niet het pad, de query of de poort.
Het toevoegen van /monthly aan de woordenboeksleutel beperkt de regel niet tot dat pad. Evenzo is https://reports.example:8443 geen poortspecifieke sleutel die deze selector herkent. De hostnaamregel geldt ook wanneer de bestemmings-URL een andere poort gebruikt.
Er is geen jokertekenuitbreiding in deze opzoeking. Een regel voor reports.example dekt niet automatisch een subdomein. Gebruik een expliciete routeringsbeslissing buiten dit eenvoudige woordenboek wanneer het beleid pad-, poort- of suffixovereenkomst vereist.
Weet welke terugval hierna komt
De implementatie controleert sleutels in deze volgorde: scheme://hostname, scheme, all://hostname en dan all. Een HTTPS-vermelding voor het hele schema heeft dus voorrang boven een hostnaamvermelding voor alle schema's. Zet een schemaspecifieke hostnaamregel vooraan in je ontwerp wanneer dat de bedoelde uitzondering is.
Houd er ook rekening mee hoe je Session standaardwaarden en van de omgeving afgeleide instellingen samenvoegt. Deze twee expliciete vermeldingen met het verzoek meegeven maakt hun bedoelde routes duidelijk, maar definieert geen beleid voor elk ander bestemmingsschema.
Een omleiding kan een andere hostnaam introduceren, en proxykeuze is ook voor die nieuwe bestemming relevant. Lees de regel als een beslissing over elke opgevraagde URL, niet als een vaste route die aan de eerste pagina hangt.