Користете 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 може да значи дека друга работа ги задржува достапните врски. Правилно затворете ги клиентите и стриминг-одговорите пред ова да го сметате за доказ дека проксито е недостапно.

Поврзани статии