Изпращайте само един хост през HTTPX прокси
Монтирайте прокси транспорт за избран хост, като запазите обичайния резервен маршрут на клиента директен.
Дайте на избрания хост прокси транспорт, а на останалата част от клиента — явен директен транспорт:
import httpx
direct = httpx.HTTPTransport(trust_env=False)
proxied = httpx.HTTPTransport(
proxy="http://203.0.113.10:8080",
trust_env=False,
)
with httpx.Client(
transport=direct,
mounts={"all://example.com": proxied},
trust_env=False,
timeout=15,
) as client:
response = client.get("https://example.com/")
print(response.status_code)
other = client.get("https://example.org/")
print(other.status_code)
Заменете адреса за документация с желания HTTP край на услугата или от списъка с HTTP проксита. Тук example.com използва монтирането, а example.org — директния стандартен транспорт. И двете извиквания са важни: успех само на прокси хоста не проверява резервния маршрут.
| Детайл на съвпадението | Ефект |
|---|---|
all://example.com | Точният хост за всички схеми на дестинацията. |
| Поддомейн | Отделен избор; използвайте умишлено поддържан заместващ символ, ако също трябва да съвпада. |
| Път | Монтиранията избират шаблони за схема, хост и незадължителен порт, не URL пътища. |
| Пренасочване към друг хост | Когато следването на пренасочвания е включено, новият URL се съпоставя и може да използва директния резервен маршрут. |
Примерът изключва откриването на средата за клиента и двата транспорта. Друго широко прокси правило или съвпадащо монтиране може да промени резултата при адаптиране. Ако внедряването разчита на CA конфигурация от средата, задайте доверието явно или запазете подходяща политика за откриване, вместо да го загубите безшумно.
Не е нужна промяна на проксито за цялата машина. В проверките на маршрута пазете и желания прокси хост, и умишлено избран резервен хост.