Uzu proxy= kiam unu finpunkto devas trakti la klientajn petojn. Uzu mounts= kiam celskemoj bezonas malsamajn vojojn. La ekzemploj uzas tiujn HTTPX-interfacojn; projekto kun la malnova API proxies= bezonas agordon por tiu versio.

Unu finpunkto

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)

Anstataŭigu la lokan aŭskultanton per funkcianta HTTP-prokurilo. Kandidato el la listo de HTTP-prokuriloj ankoraŭ bezonas teston kun via celo. HTTPS-celo povas uzi ĉi tiun http://-finpunkton per CONNECT. Ŝanĝi la skemon al https:// anstataŭe petas TLS al la prokurilo mem, kion aŭskultanto kaj kliento devas subteni.

Apartaj vojoj laŭ celskemo

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)

Muntaj ŝlosiloj kongruas kun celaj URL-oj. HTTP-celoj ĉi tie elektas pordon 8080, HTTPS-celoj pordon 8081. La prokurila valoro priskribas la propran protokolon de la aŭskultanto, do la HTTPS-munto povas ĝuste enhavi prokurilon http://. Enmetu viajn finpunktojn kaj kontrolu ambaŭ celskemojn.

Ambaŭ receptoj agordas trust_env=False ĉe la kliento kaj, kie liveritaj, ĉe la transportoj. Alie HTTPX defaŭlte legas prokurilajn kaj atestilajn medivariablojn. Se via deplojo dependas de ili, lasu malkovron aktiva aŭ eksplicite agordu la bezonatajn vojojn kaj fidon. Por privata fido uzu la TLS-kuntekston kaj CA-agordon de via HTTPX-versio; lasu celkontrolon aktiva. Fido al HTTPS-prokurilo povas esti aparta de fido al la celo.

httpx.Timeout(15.0, connect=5.0) superregas la konektan tempolimon kaj donas la defaŭltan valoron al la aliaj agorditaj partoj. Legado, skribado kaj atendado de la konektaro havas apartajn limojn; dek kvin sekundoj ne estas totala limdato por pasinta reala tempo. Konektara tempolimo povas signifi, ke alia laboro tenas la disponeblajn konektojn. Ĝuste fermu klientojn kaj fluajn respondojn antaŭ ol konsideri tion pruvo de neatingebla prokurilo.

Rilataj artikoloj