Користите 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) надјачава временско ограничење повезивања, а осталим конфигурисаним деловима даје подразумевану вредност. Читање, писање и чекање на скуп веза имају одвојене лимите; петнаест секунди није укупни рок протеклог времена. Истек чекања на скуп може значити да други посао држи расположиве везе. Правилно затворите клијенте и streaming одговоре пре него што то сматрате доказом недоступног проксија.

Повезани чланци