Daj wybranemu hostowi transport proxy, a reszcie klienta jawny transport bezpośredni:

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)

Zastąp adres dokumentacyjny zamierzonym punktem HTTP usługi lub z listy proxy HTTP. Tutaj example.com używa montowania, a example.org bezpośredniego domyślnego transportu. Oba wywołania są ważne: sukces tylko hosta z proxy nie weryfikuje trasy rezerwowej.

Szczegół dopasowaniaEfekt
all://example.comDokładny host we wszystkich schematach docelowych.
SubdomenaOsobny wybór; świadomie użyj obsługiwanego symbolu wieloznacznego, jeśli też ma pasować.
ŚcieżkaMontowania wybierają wzorce schematu, hosta i opcjonalnego portu, nie ścieżki URL.
Przekierowanie do innego hostaGdy śledzenie przekierowań jest włączone, dopasowywany jest nowy URL, który może użyć bezpośredniej trasy rezerwowej.

Przykład wyłącza odczyt środowiska w kliencie i obu transportach. Inna szeroka reguła proxy lub pasujące montowanie może zmienić wynik przy adaptacji. Jeśli wdrożenie zależy od konfiguracji CA ze środowiska, podaj to zaufanie jawnie albo zachowaj właściwą politykę wykrywania, zamiast stracić je po cichu.

Nie potrzeba zmiany proxy całej maszyny. W kontrolach tras zachowaj zarówno zamierzony host z proxy, jak i świadomie wybrany host rezerwowy.

Powiązane artykuły