Gamitin ang proxy= kapag iisang endpoint ang dapat humawak sa requests ng client. Gamitin ang mounts= kapag kailangan ng magkaibang ruta ayon sa destination scheme. Ang mga halimbawang ito ay gumagamit ng mga HTTPX interface na iyon; kailangan ng configuration para sa mismong bersyon ang proyektong gumagamit ng lumang proxies= API.

Iisang endpoint

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)

Palitan ang lokal na listener ng gumaganang HTTP proxy. Kailangan pa ring subukan sa destinasyon mo ang kandidato mula sa listahan ng mga HTTP proxy. Puwedeng gamitin ng HTTPS target ang http:// endpoint na ito sa pamamagitan ng CONNECT. Ang pagpapalit ng scheme sa https:// ay humihiling ng TLS sa mismong proxy, na kailangang suportado ng listener at client.

Magkahiwalay na ruta ayon sa destination scheme

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)

Destination URLs ang tinutugma ng mount keys. Dito, port 8080 ang pinipili ng HTTP targets at port 8081 ng HTTPS targets. Inilalarawan ng proxy value ang sariling protocol ng listener, kaya tama lang na may http:// proxy sa HTTPS mount. Ilagay ang endpoints mo at suriin ang parehong destination scheme.

Parehong nagse-set ng trust_env=False ang mga recipe sa client at, kung ibinigay, sa transports. Kung hindi, binabasa ng HTTPX ang proxy at certificate environment variables bilang default. Kung umaasa rito ang deployment mo, panatilihing bukas ang discovery o tahasang itakda ang kailangan na routes at trust. Gamitin ang TLS context at CA configuration na suportado ng HTTPX version mo para sa private trust; panatilihing bukas ang destination verification. Maaaring hiwalay ang HTTPS proxy trust sa destination trust.

Ino-override ng httpx.Timeout(15.0, connect=5.0) ang connection timeout habang default ang ibinibigay sa iba pang configured timeout components. May hiwalay na limit ang read, write, at paghihintay sa pool; hindi kabuuang deadline ng lumipas na oras ang labinlimang segundo. Puwedeng mangahulugan ang pool timeout na may ibang trabahong humahawak sa available connections. Isara nang tama ang clients at streaming responses bago ituring iyon na patunay na hindi maabot ang proxy.

Kaugnay na mga artikulo