Escoller rutas de proxy HTTPX con proxy e mounts
Usa proxy e montaxes de transporte HTTPX co esquema correcto, comportamento de contorno explícito e límites separados de conexión e lectura.
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.