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.

ZuordnungsdetailWirkung
all://example.comDer exakte Host über alle Zielschemata hinweg.
Eine SubdomainEine eigene Entscheidung; soll sie ebenfalls passen, bewusst einen unterstützten Platzhalter verwenden.
Ein PfadMounts wählen Schema-, Host- und optionale Portmuster, keine URL-Pfade.
Umleitung zu einem anderen HostIst 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.

Ähnliche Artikel