Odabir proxy ruta u HTTPX-u uz proxy i mounts
Upotrijebite proxy i montiranja transporta HTTPX sa ispravnom shemom, izričitom obradom okruženja i zasebnim ograničenjima veze i čitanja.
Upotrijebite proxy= kada jedna krajnja točka treba obraditi klijentove zahtjeve. Upotrijebite mounts= kada sheme odredišta trebaju različite rute. Primjeri rabe ta HTTPX sučelja; projekt sa starijim API-jem proxies= treba konfiguraciju usklađenu s verzijom.
Jedna krajnja točka
import httpx
timeout = httpx.Timeout(15.0, connect=5.0)
with httpx.Client(
proxy="http://127.0.0.1:8080",
trust_env=False,
timeout=timeout,
) as client:
response = client.get("https://example.com/")
response.raise_for_status()
print(response.status_code)
Zamijenite lokalno sučelje za slušanje aktivnim HTTP proxyjem. Kandidata s popisa HTTP proxyja i dalje treba testirati s vašim odredištem. HTTPS cilj može rabiti ovu točku http:// putem CONNECT-a. Promjena sheme u https:// traži TLS do samog proxyja, što moraju podržavati i sučelje za slušanje i klijent.
Zasebne rute prema shemi odredišta
import httpx
mounts = {
"http://": httpx.HTTPTransport(
proxy="http://127.0.0.1:8080",
trust_env=False,
),
"https://": httpx.HTTPTransport(
proxy="http://127.0.0.1:8081",
trust_env=False,
),
}
with httpx.Client(
mounts=mounts,
trust_env=False,
timeout=httpx.Timeout(15.0, connect=5.0),
) as client:
response = client.get("https://example.com/")
response.raise_for_status()
print(response.status_code)
Ključevi montiranja odgovaraju ciljnim URL-ovima. HTTP ciljevi ovdje biraju priključak 8080, a HTTPS ciljevi 8081. Vrijednost proxyja opisuje vlastiti protokol sučelja za slušanje, pa HTTPS montiranje može ispravno sadržavati proxy http://. Unesite svoje točke i provjerite obje sheme odredišta.
Oba postupka postavljaju trust_env=False na klijentu i, gdje su navedeni, na transportima. Inače HTTPX zadano čita varijable okruženja za proxy i certifikate. Ako vaša implementacija ovisi o njima, ostavite otkrivanje uključeno ili izričito konfigurirajte rute i povjerenje. Za privatno povjerenje rabite TLS kontekst i CA konfiguraciju koju podržava vaša verzija HTTPX-a; provjera odredišta ostaje uključena. Povjerenje HTTPS proxyju može biti zasebno od povjerenja odredištu.
httpx.Timeout(15.0, connect=5.0) nadjačava vremensko ograničenje povezivanja, a ostalim konfiguriranim sastavnicama daje zadanu vrijednost. Čitanje, pisanje i čekanje na skup veza imaju zasebna ograničenja; petnaest sekundi nije ukupni rok proteklog vremena. Istek čekanja na skup može značiti da drugi posao drži raspoložive veze. Pravilno zatvorite klijente i odgovore u toku prije nego to smatrate dokazom nedostupnog proxyja.