HTTPX proxy maršrutų pasirinkimas su proxy ir mounts
Naudokite HTTPX proxy ir transporto prijungimus su teisinga schema, aiškiu aplinkos veikimu ir atskiromis prisijungimo bei skaitymo ribomis.
Naudokite proxy=, kai vienas galinis taškas turi apdoroti kliento užklausas. Naudokite mounts=, kai paskirties schemoms reikia skirtingų maršrutų. Pavyzdžiai naudoja šias HTTPX sąsajas; projektui su senesne proxies= API reikia jo versiją atitinkančio nustatymo.
Vienas galinis taškas
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)
Pakeiskite vietinį klausytuvą veikiančiu HTTP tarpiniu serveriu. Kandidatą iš HTTP tarpinių serverių sąrašo vis tiek reikia išbandyti su jūsų paskirtimi. HTTPS tikslas gali šį http:// tašką naudoti per CONNECT. Schemos pakeitimas į https:// prašo TLS iki paties tarpinio serverio, o tai turi palaikyti ir klausytuvas, ir klientas.
Atskiri maršrutai pagal paskirties schemą
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)
Prijungimų raktai atitinka paskirties URL. HTTP tikslai čia pasirenka 8080 prievadą, HTTPS tikslai — 8081. Tarpinio serverio reikšmė apibūdina paties klausytuvo protokolą, todėl HTTPS prijungimas gali teisingai turėti http:// tarpinį serverį. Įrašykite savo taškus ir patikrinkite abi paskirties schemas.
Abu būdai nustato trust_env=False klientui ir pateiktiems transportams. Kitaip HTTPX pagal nutylėjimą skaito tarpinio serverio ir sertifikatų aplinkos kintamuosius. Jei diegimas nuo jų priklauso, palikite aptikimą įjungtą arba aiškiai nustatykite maršrutus bei pasitikėjimą. Privačiam pasitikėjimui naudokite jūsų HTTPX versijos palaikomą TLS kontekstą ir CA nustatymus; paskirties tikrinimą palikite įjungtą. HTTPS tarpinio serverio pasitikėjimas gali būti atskirtas nuo paskirties pasitikėjimo.
httpx.Timeout(15.0, connect=5.0) perrašo prisijungimo laukimo ribą ir kitiems nustatytiems komponentams pateikia numatytą reikšmę. Skaitymas, rašymas ir telkinio laukimas turi atskiras ribas; penkiolika sekundžių nėra viso realiai praėjusio laiko terminas. Telkinio laukimo pabaiga gali reikšti, kad kitas darbas laiko prieinamus ryšius. Teisingai uždarykite klientus ir srautinius atsakymus prieš laikydami tai tarpinio serverio nepasiekiamumo įrodymu.