Usa proxy= cando un punto de conexión deba xestionar as peticións do cliente. Usa mounts= cando os esquemas de destino necesiten rutas diferentes. Os exemplos usan estas interfaces HTTPX; un proxecto coa API antiga proxies= necesita configuración para esa versión.

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

Substitúe o punto de escoita local por un proxy HTTP activo. Un candidato da lista de proxys HTTP aínda necesita probarse co teu destino. Un destino HTTPS pode usar este punto http:// por CONNECT. Cambiar o esquema a https:// pide TLS ata o propio proxy, que deben soportar o cliente e o punto de escoita.

Rutas separadas segundo o 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)

As claves de montaxe coinciden cos URL de destino. Os destinos HTTP escollen aquí o porto 8080 e os HTTPS o 8081. O valor do proxy describe o protocolo do propio punto de escoita, polo que a montaxe HTTPS pode conter correctamente un proxy http://. Pon os teus puntos e comproba ambos os esquemas de destino.

As dúas receitas fixan trust_env=False no cliente e, cando se fornecen, nos transportes. Se non, HTTPX le por defecto variables de contorno de proxy e certificados. Se o despregamento depende delas, deixa activa a detección ou configura explicitamente as rutas e a confianza. Para confianza privada usa o contexto TLS e a configuración CA da túa versión HTTPX; mantén a verificación do destino activa. A confianza no proxy HTTPS pode estar separada da do destino.

httpx.Timeout(15.0, connect=5.0) substitúe o tempo de conexión e dá o valor predeterminado aos outros compoñentes configurados. Lectura, escritura e espera do pool teñen límites separados; quince segundos non son un prazo total de tempo real transcorrido. Un timeout do pool pode indicar que outro traballo retén as conexións dispoñibles. Pecha ben clientes e respostas en streaming antes de consideralo proba de que o proxy é inaccesible.

Artigos relacionados