HTTPX proxy maršrutu izvēle ar proxy un mounts
Izmantojiet HTTPX proxy un transporta piesaistes ar pareizu shēmu, skaidru vides darbību un atsevišķām savienojuma un lasīšanas robežām.
Izmantojiet proxy=, ja vienam galapunktam jāapstrādā klienta pieprasījumi. Izmantojiet mounts=, ja galamērķu shēmām vajag dažādus maršrutus. Piemēri lieto šīs HTTPX saskarnes; projektam ar vecāku proxies= API vajag tā versijai atbilstošu konfigurāciju.
Viens galapunkts
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)
Aizstājiet lokālo klausītāju ar darbojošos HTTP starpniekserveri. Kandidāts no HTTP starpniekserveru saraksta joprojām jāpārbauda ar jūsu galamērķi. HTTPS mērķis šo http:// punktu var izmantot caur CONNECT. Shēmas maiņa uz https:// prasa TLS pašam starpniekserverim, ko jāatbalsta klausītājam un klientam.
Atsevišķi maršruti pēc galamērķa shēmas
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)
Piesaistes atslēgas atbilst mērķa URL. HTTP mērķi te izvēlas portu 8080, HTTPS mērķi — 8081. Starpniekservera vērtība apraksta paša klausītāja protokolu, tāpēc HTTPS piesaiste var pareizi saturēt http:// starpniekserveri. Ievietojiet savus galapunktus un pārbaudiet abas galamērķa shēmas.
Abi paņēmieni iestata trust_env=False klientā un, ja tie doti, transportos. Citādi HTTPX pēc noklusējuma lasa starpniekservera un sertifikātu vides mainīgos. Ja izvietojums no tiem atkarīgs, atstājiet noteikšanu ieslēgtu vai skaidri konfigurējiet maršrutus un uzticamību. Privātai uzticamībai izmantojiet savas HTTPX versijas TLS kontekstu un CA iestatījumus; galamērķa pārbaudi atstājiet ieslēgtu. HTTPS starpniekservera uzticamība var būt atsevišķa no galamērķa uzticamības.
httpx.Timeout(15.0, connect=5.0) pārraksta savienojuma laika robežu un citiem konfigurētajiem komponentiem dod noklusējuma vērtību. Lasīšanai, rakstīšanai un pūla gaidīšanai ir atsevišķi ierobežojumi; piecpadsmit sekundes nav kopēja reāli pagājušā laika robeža. Pūla taimauts var nozīmēt, ka cits darbs aiztur pieejamos savienojumus. Pareizi aizveriet klientus un straumētās atbildes, pirms to uzskatāt par nesasniedzama starpniekservera pierādījumu.