Enviar només un host per un proxy HTTPX
Munteu un transport proxy per al host triat mantenint directa la ruta normal de reserva del client.
Doneu al host triat un transport proxy i a la resta del client un transport directe explícit:
import httpx
direct = httpx.HTTPTransport(trust_env=False)
proxied = httpx.HTTPTransport(
proxy="http://203.0.113.10:8080",
trust_env=False,
)
with httpx.Client(
transport=direct,
mounts={"all://example.com": proxied},
trust_env=False,
timeout=15,
) as client:
response = client.get("https://example.com/")
print(response.status_code)
other = client.get("https://example.org/")
print(other.status_code)
Substituïu l’adreça documental pel punt HTTP previst del servei o de la llista de proxys HTTP. Aquí example.com utilitza el muntatge i example.org el valor directe predeterminat. Totes dues crides importen: l’èxit només al host amb proxy no verifica la ruta de reserva.
| Detall de coincidència | Efecte |
|---|---|
all://example.com | El host exacte amb tots els esquemes de destinació. |
| Un subdomini | Una tria separada; utilitzeu intencionadament un comodí admès si també ha de coincidir. |
| Un camí | Els muntatges seleccionen patrons d’esquema, host i port opcional, no camins d’URL. |
| Una redirecció a un altre host | Quan se segueixen redireccions, s’avalua el nou URL i pot utilitzar la reserva directa. |
L’exemple desactiva la lectura de l’entorn al client i als dos transports. Una altra regla proxy àmplia o un muntatge coincident pot canviar el resultat en adaptar-lo. Si el desplegament depèn de configuració CA de l’entorn, proporcioneu aquesta confiança explícitament o conserveu la política de detecció adient, en lloc de perdre-la silenciosament.
No cal canviar el proxy de tota la màquina. Manteniu a les comprovacions de ruta tant el host previst amb proxy com un host de reserva triat deliberadament.