Избор на HTTPX прокси-рути со proxy и mounts
Користете proxy и transport монтирања на HTTPX со точна шема, јасно однесување на околината и посебни граници за поврзување и читање.
Користете proxy= кога една крајна точка треба да ги обработува барањата на клиентот. Користете mounts= кога шемите на одредиштата бараат различни рути. Примерите ги користат овие HTTPX интерфејси; проект со постариот API proxies= бара конфигурација за својата верзија.
Една крајна точка
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)
Заменете го локалниот слушател со активно HTTP прокси. Кандидат од листата со HTTP прокси-сервери сепак треба да се тестира со вашето одредиште. HTTPS цел може да ја користи оваа http:// точка преку CONNECT. Промена на шемата во https:// бара TLS до самото прокси, што мора да го поддржат клиентот и слушателот.
Одделни рути според шемата на одредиштето
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)
Клучевите за монтирање одговараат на целните URL-адреси. HTTP целите тука избираат порта 8080, а HTTPS целите 8081. Вредноста на проксито го опишува сопствениот протокол на слушателот, па HTTPS монтирањето може правилно да содржи прокси http://. Ставете ги вашите точки и проверете ги двете шеми на одредиштата.
Двата начина поставуваат trust_env=False на клиентот и, каде што се дадени, на транспортите. Инаку HTTPX стандардно ги чита променливите на околината за прокси и сертификати. Ако поставувањето зависи од нив, оставете го откривањето активно или изрично конфигурирајте ги рутите и довербата. За приватна доверба користете TLS контекст и CA конфигурација од вашата HTTPX верзија; проверката на одредиштето нека остане вклучена. Довербата во HTTPS проксито може да биде одделна од довербата во одредиштето.
httpx.Timeout(15.0, connect=5.0) го заменува времето за поврзување и им ја дава стандардната вредност на другите конфигурирани компоненти. Читањето, пишувањето и чекањето на pool имаат посебни граници; петнаесет секунди не се вкупен рок за реално изминатото време. Pool timeout може да значи дека друга работа ги задржува достапните врски. Правилно затворете ги клиентите и стриминг-одговорите пред ова да го сметате за доказ дека проксито е недостапно.