Nur einen Host durch einen HTTPX-Proxy senden
Einen Proxy-Transport für den ausgewählten Host einhängen und den normalen Fallback-Weg des Clients direkt halten.
Dem gewählten Host einen Proxy-Transport geben und für den restlichen Client ausdrücklich einen direkten Transport setzen:
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)
Die Dokumentationsadresse durch den gewünschten HTTP-Endpunkt des Dienstes oder aus der HTTP-Proxy-Liste ersetzen. Hier nutzt example.com den Mount und example.org den direkten Standard. Beide Aufrufe sind wichtig: Erfolg nur beim Proxy-Host bestätigt den Fallback-Weg nicht.
| Zuordnungsdetail | Wirkung |
|---|---|
all://example.com | Der exakte Host über alle Zielschemata hinweg. |
| Eine Subdomain | Eine eigene Entscheidung; soll sie ebenfalls passen, bewusst einen unterstützten Platzhalter verwenden. |
| Ein Pfad | Mounts wählen Schema-, Host- und optionale Portmuster, keine URL-Pfade. |
| Umleitung zu einem anderen Host | Ist das Folgen von Umleitungen aktiv, wird die neue URL zugeordnet und kann den direkten Fallback nutzen. |
Das Beispiel deaktiviert die Umgebungserkennung beim Client und beiden Transporten. Eine weitere breite Proxy-Regel oder ein passender Mount kann beim Anpassen das Ergebnis ändern. Verwendet die Bereitstellung CA-Konfiguration aus der Umgebung, dieses Vertrauen ausdrücklich bereitstellen oder die passende Erkennungsregel beibehalten, statt es unbemerkt zu verlieren.
Keine systemweite Proxy-Änderung ist nötig. Sowohl den gewünschten Proxy-Host als auch einen bewusst gewählten Fallback-Host in den Routenprüfungen behalten.