Enviar só un host por un proxy HTTPX
Monta un transporte proxy para o host escollido e mantén directa a ruta normal de reserva do cliente.
Dálle ao host escollido un transporte proxy e ao resto do cliente un transporte directo explícito:
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)
Substitúe o enderezo documental polo punto HTTP previsto do servizo ou da lista de proxys HTTP. Aquí example.com usa a montaxe e example.org o valor directo predeterminado. Ambas as chamadas importan: o éxito só no host con proxy non verifica a ruta de reserva.
| Detalle de coincidencia | Efecto |
|---|---|
all://example.com | O host exacto en todos os esquemas de destino. |
| Un subdominio | Unha escolla separada; usa intencionadamente un comodín compatible se tamén debe coincidir. |
| Un camiño | As montaxes seleccionan patróns de esquema, host e porto opcional, non camiños de URL. |
| Unha redirección a outro host | Cando se seguen redireccións, avalíase o novo URL e pode usar a reserva directa. |
O exemplo desactiva a lectura do contorno no cliente e nos dous transportes. Outra regra proxy ampla ou montaxe coincidente pode cambiar o resultado ao adaptalo. Se o despregamento depende de configuración CA do contorno, dá esa confianza explicitamente ou conserva a política de detección axeitada, en vez de perdela sen aviso.
Non cómpre cambiar o proxy de toda a máquina. Mantén nas comprobacións tanto o host previsto con proxy como un host de reserva escollido deliberadamente.