Надсилати через проксі 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-налаштувань оточення, задайте цю довіру явно або збережіть належну політику читання, щоб не втратити її непомітно.
Змінювати проксі всієї машини не потрібно. У перевірках маршруту тримайте і потрібний проксований хост, і навмисно вибраний резервний хост.