Zgjedhja e rrugëve proxy në HTTPX me proxy dhe mounts
Përdorni proxy dhe montime transporti HTTPX me skemën e saktë, sjellje të qartë të mjedisit dhe kufij të veçantë lidhjeje e leximi.
Përdorni proxy= kur një pikë fundore duhet të trajtojë kërkesat e klientit. Përdorni mounts= kur skemat e destinacionit duan rrugë të ndryshme. Shembujt përdorin këto ndërfaqe HTTPX; projekt me API-n e vjetër proxies= do konfigurim për atë version.
Një pikë fundore
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)
Zëvendësoni dëgjuesin lokal me proxy HTTP aktiv. Kandidati nga lista e proxy-ve HTTP duhet ende provuar me destinacionin tuaj. Një objektiv HTTPS mund të përdorë këtë pikë http:// përmes CONNECT. Ndryshimi i skemës në https:// kërkon TLS te vetë proxy, çka duhet ta mbështesin dëgjuesi dhe klienti.
Rrugë të ndara sipas skemës së destinacionit
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)
Çelësat e montimit përputhen me URL-të objektiv. Objektivat HTTP këtu zgjedhin portën 8080, HTTPS portën 8081. Vlera e proxy-t përshkruan protokollin e vetë dëgjuesit, ndaj montimi HTTPS mund të përmbajë saktë një proxy http://. Vendosni pikat tuaja dhe kontrolloni të dyja skemat e destinacionit.
Të dyja recetat vendosin trust_env=False te klienti dhe, ku jepen, te transportet. Përndryshe HTTPX lexon si parazgjedhje variablat e mjedisit për proxy dhe certifikata. Nëse vendosja varet prej tyre, lini zbulimin aktiv ose konfiguroni shprehimisht rrugët dhe besimin. Për besim privat përdorni kontekstin TLS dhe konfigurimin CA të versionit tuaj HTTPX; lini aktiv verifikimin e destinacionit. Besimi te proxy HTTPS mund të ndahet nga besimi te destinacioni.
httpx.Timeout(15.0, connect=5.0) mbishkruan kohën e lidhjes dhe u jep përbërësve të tjerë të konfiguruar vlerën e parazgjedhur. Leximi, shkrimi dhe pritja e pool-it kanë kufij të veçantë; pesëmbëdhjetë sekonda nuk janë afat i përgjithshëm i kohës reale. Timeout i pool-it mund të nënkuptojë se punë tjetër mban lidhjet e disponueshme. Mbyllni siç duhet klientët dhe përgjigjet streaming përpara se ta quani provë që proxy nuk arrihet.