Un lloc web necessita un proxy diferent de la resta de les vostres peticions HTTPS. Requests pot expressar aquesta tria dins del mateix diccionari de proxys:

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()

Per a aquesta destinació guanya la clau específica del nom d'amfitrió. Un altre nom d'amfitrió HTTPS fa servir l'entrada general d'esquema. Els valors descriuen la connexió del proxy, així que una destinació HTTPS es pot mapar correctament a un URL de proxy HTTP. Quan aquestes són rutes permeses de llocs públics sense comptes de proxy, la llista de proxys HTTP pot subministrar candidats per a aquests valors; manteniu cada regla de destinació explícita.

Feu coincidir un nom d'amfitrió, no un URL de recurs

A Requests 2.32.5, la clau específica es construeix a partir de l'esquema de la destinació i del nom d'amfitrió analitzat. No conté la ruta, la consulta ni el port.

Afegir /monthly a la clau del diccionari no restringirà la regla a aquesta ruta. Igualment, https://reports.example:8443 no és una clau específica de port que reconegui aquest selector. La regla del nom d'amfitrió també s'aplica quan l'URL de destinació fa servir un altre port.

En aquesta cerca no hi ha expansió de comodins. Una regla per a reports.example no cobreix automàticament un subdomini. Feu servir una decisió d'encaminament explícita fora d'aquest diccionari simple quan la política necessiti coincidència de ruta, port o sufix.

Saber quina reserva ve després

La implementació comprova les claus en aquest ordre: scheme://hostname, scheme, all://hostname i després all. Per tant, una entrada HTTPS general d'esquema té precedència sobre una entrada de nom d'amfitrió per a tots els esquemes. Poseu una regla de nom d'amfitrió específica d'esquema primer en el vostre disseny quan aquesta sigui l'excepció volguda.

Tingueu també en compte com la vostra Session fusiona els valors per defecte i la configuració derivada de l'entorn. Passar aquestes dues entrades explícites amb la petició fa clares les seves rutes volgudes, però no defineix una política per a qualsevol altre esquema de destinació.

Una redirecció pot introduir un altre nom d'amfitrió, i la selecció de proxy també és rellevant per a aquesta nova destinació. Llegiu la regla com una decisió sobre cada URL que es demana, no com una ruta permanent lligada a la primera pàgina.

Articles relacionats