Triar rutes de proxy HTTPX amb proxy i mounts
Fes servir proxy i muntatges de transport HTTPX amb l’esquema correcte, un entorn explícit i límits separats de connexió i lectura.
Fes servir proxy= quan un únic punt de connexió hagi de gestionar les peticions del client. Fes servir mounts= quan els esquemes de destinació necessitin rutes diferents. Els exemples usen aquestes interfícies HTTPX; un projecte amb l’API antiga proxies= necessita configuració per a aquella versió.
Un punt de connexió
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)
Substitueix el punt d’escolta local per un proxy HTTP actiu. Un candidat de la llista de proxys HTTP encara s’ha de provar amb la teva destinació. Un destí HTTPS pot usar aquest punt http:// per CONNECT. Canviar l’esquema a https:// demana TLS fins al proxy mateix, i ho han de suportar el client i el punt d’escolta.
Rutes separades segons l’esquema de destinació
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)
Les claus de muntatge coincideixen amb els URL de destinació. Els destins HTTP trien aquí el port 8080 i els HTTPS el 8081. El valor del proxy descriu el protocol del punt d’escolta mateix, de manera que el muntatge HTTPS pot contenir correctament un proxy http://. Posa els teus punts i comprova tots dos esquemes de destinació.
Les dues receptes fixen trust_env=False al client i, si es proporcionen, als transports. Si no, HTTPX llegeix per defecte variables d’entorn de proxy i certificats. Si el desplegament en depèn, mantén activa la detecció o configura explícitament les rutes i la confiança. Per a confiança privada, usa el context TLS i la configuració CA de la teva versió HTTPX; deixa la verificació de destinació activa. La confiança del proxy HTTPS pot estar separada de la del destí.
httpx.Timeout(15.0, connect=5.0) substitueix el temps de connexió i dona el valor predeterminat als altres components configurats. Lectura, escriptura i espera del pool tenen límits separats; quinze segons no són un termini total de temps real transcorregut. Un timeout del pool pot indicar que una altra feina reté les connexions disponibles. Tanca clients i respostes en streaming correctament abans de considerar-ho una prova que el proxy és inaccessible.