Usa proxy= cuando un solo punto de conexión deba gestionar las peticiones del cliente. Usa mounts= cuando los esquemas de destino necesiten rutas distintas. Estos ejemplos utilizan esas interfaces de HTTPX; un proyecto con la antigua API proxies= necesita una configuración acorde con su versión.

Un solo punto de conexión

import httpx

timeout = httpx.Timeout(15.0, connect=5.0)

with httpx.Client(
    proxy="http://127.0.0.1:8080",
    trust_env=False,
    timeout=timeout,
) as client:
    response = client.get("https://example.com/")
    response.raise_for_status()
    print(response.status_code)

Sustituye el punto de escucha local por un proxy HTTP activo; un candidato de la lista de proxies HTTP aún debe probarse contra tu destino. Un destino HTTPS puede usar este punto http:// mediante CONNECT. Cambiar el esquema a https:// solicita TLS hacia el propio proxy, lo que requiere soporte del cliente y del punto de escucha.

Separar rutas por esquema de destino

import httpx

mounts = {
    "http://": httpx.HTTPTransport(
        proxy="http://127.0.0.1:8080",
        trust_env=False,
    ),
    "https://": httpx.HTTPTransport(
        proxy="http://127.0.0.1:8081",
        trust_env=False,
    ),
}

with httpx.Client(
    mounts=mounts,
    trust_env=False,
    timeout=httpx.Timeout(15.0, connect=5.0),
) as client:
    response = client.get("https://example.com/")
    response.raise_for_status()
    print(response.status_code)

Las claves de montaje coinciden con las URL de destino. Aquí los destinos HTTP eligen el puerto 8080 y los HTTPS el 8081. El valor del proxy describe el protocolo del propio punto de escucha, así que el montaje HTTPS puede contener correctamente un proxy http://. Sustituye los puntos de conexión y comprueba ambos esquemas de destino.

Las dos recetas fijan trust_env=False en el cliente y, cuando se proporcionan, en los transportes. En caso contrario, HTTPX lee por defecto las variables de entorno de proxy y certificados. Si el despliegue depende de ellas, deja activa la detección o configura explícitamente las rutas y la confianza necesarias. Para confianza privada, usa el contexto TLS y la configuración CA de tu versión de HTTPX; mantén activa la verificación del destino. La confianza del proxy HTTPS puede ser independiente de la del destino.

httpx.Timeout(15.0, connect=5.0) sustituye el tiempo de conexión y aplica el valor predeterminado a los demás componentes configurados. Lectura, escritura y espera del pool tienen límites separados; quince segundos no son un plazo total de tiempo transcurrido. Un timeout del pool puede indicar que otro trabajo retiene las conexiones disponibles. Cierra bien los clientes y las respuestas en streaming antes de interpretarlo como prueba de que el proxy es inaccesible.

Artículos relacionados