Enviar solo un host por un proxy HTTPX
Monta un transporte proxy para un host elegido y conserva la ruta normal de reserva del cliente como directa.
Asigna al host elegido un transporte proxy y al resto del 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)
Sustituye la dirección documental por el punto HTTP deseado de tu servicio o la lista de proxies HTTP. Aquí example.com usa el montaje y example.org el valor directo predeterminado. Ambas llamadas importan: el éxito solo en el host con proxy no verifica la ruta de reserva.
| Detalle de coincidencia | Efecto |
|---|---|
all://example.com | El host exacto en todos los esquemas de destino. |
| Un subdominio | Una elección separada; usa deliberadamente un comodín admitido si también debe coincidir. |
| Una ruta | Los montajes eligen patrones de esquema, host y puerto opcional, no rutas de URL. |
| Una redirección a otro host | Cuando se habilita seguir redirecciones, se evalúa la nueva URL y puede usarse la reserva directa. |
El ejemplo desactiva la lectura del entorno en el cliente y ambos transportes. Otra regla proxy amplia o montaje coincidente puede cambiar el resultado al adaptarlo. Si el despliegue depende de configuración CA del entorno, proporciona esa confianza explícitamente o conserva la política adecuada de lectura, en vez de perderla sin aviso.
No hace falta cambiar el proxy de toda la máquina. Incluye en las comprobaciones de ruta tanto el host previsto con proxy como un host de reserva elegido deliberadamente.