Geef de gekozen host een proxytransport en de rest van de client expliciet een direct transport:

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)

Vervang het documentatieadres door het bedoelde HTTP-eindpunt van je dienst of uit de lijst met HTTP-proxy’s. Hier gebruikt example.com de mount en example.org de directe standaard. Beide aanroepen tellen: succes bij alleen de proxyhost bevestigt de terugvalroute niet.

MatchdetailEffect
all://example.comDe exacte host voor alle bestemmingsschema’s.
Een subdomeinEen aparte keuze; gebruik bewust een ondersteund jokerteken als dat ook moet matchen.
Een padMounts selecteren schema-, host- en optionele poortpatronen, geen URL-paden.
Een omleiding naar een andere hostAls omleidingen volgen aan staat, wordt de nieuwe URL gematcht en kan die de directe terugval gebruiken.

Het voorbeeld schakelt omgevingsdetectie uit op de client en beide transporten. Een andere brede proxyregel of passende mount kan bij aanpassing het resultaat veranderen. Steunt de uitrol op CA-configuratie uit de omgeving, geef dat vertrouwen dan expliciet of behoud het passende detectiebeleid, zodat het niet ongemerkt verdwijnt.

Een proxywijziging voor de hele machine is niet nodig. Neem in routecontroles zowel de bedoelde proxyhost als een bewust gekozen terugvalhost op.

Gerelateerde artikelen