Inviare un solo host tramite un proxy HTTPX
Monta un trasporto proxy per l’host scelto mantenendo diretta la normale via di ripiego del client.
Assegna all’host scelto un trasporto proxy e al resto del client un trasporto diretto esplicito:
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)
Sostituisci l’indirizzo documentale con l’endpoint HTTP voluto del servizio o della lista dei proxy HTTP. Qui example.com usa il mount e example.org il predefinito diretto. Entrambe le chiamate contano: il successo del solo host con proxy non verifica il percorso di ripiego.
| Dettaglio di corrispondenza | Effetto |
|---|---|
all://example.com | L’host esatto per tutti gli schemi di destinazione. |
| Un sottodominio | Una scelta separata; usa intenzionalmente un carattere jolly supportato se deve corrispondere anch’esso. |
| Un percorso | I mount selezionano schemi, host e porte facoltative, non percorsi URL. |
| Un reindirizzamento a un altro host | Quando si seguono i reindirizzamenti, il nuovo URL viene confrontato e può usare il ripiego diretto. |
L’esempio disattiva la lettura dell’ambiente sul client e su entrambi i trasporti. Un’altra regola proxy ampia o un mount corrispondente può cambiare il risultato nell’adattamento. Se il deployment dipende da configurazione CA dell’ambiente, fornisci esplicitamente tale fiducia o conserva la politica di rilevamento appropriata, senza perderla silenziosamente.
Non occorre modificare il proxy di tutta la macchina. Nei controlli di percorso mantieni sia l’host previsto via proxy sia un host di ripiego scelto deliberatamente.