Выбор уровня настройки прокси в clj-http
Используйте свойства JVM для общего маршрута clj-http или параметры запроса для явного переопределения HTTP-прокси.
Для clj-http 3.13.1 начните с документированных интерфейсов библиотеки: свойств Java и карты запроса. Одна лишь настройка прокси в системе не показывает, какие параметры передало приложение.
Запрос может явно выбрать HTTP-посредника:
(require '[clj-http.client :as http])
(http/get "https://example.com/"
{:proxy-host "proxy.example.net"
:proxy-port 8080})
Для общей политики JVM clj-http документирует http.proxyHost и http.proxyPort для HTTP-адресов, а также https.proxyHost и https.proxyPort для HTTPS-адресов. Общее свойство обхода — http.nonProxyHosts.
Явные параметры proxy-host и proxy-port переопределяют этот маршрут на основе свойств, включая http.nonProxyHosts. Для разрешённой публичной тестовой конфигурации без учётных данных прокси запись HTTP из списка HTTP-прокси может дать хост и порт для запроса. clj-http также предоставляет proxy-ignore-hosts для исключений на уровне запроса; его документированное значение по умолчанию содержит localhost и 127.0.0.1.
Когда посреднику нужны учётные данные, передайте proxy-user и proxy-pass в параметрах запроса из источника учётных данных приложения.
У SOCKS отдельный интерфейс: создайте менеджер с помощью clj-http.conn-mgr/make-socks-proxied-conn-manager и передайте его как connection-manager. Повторно используйте и закрывайте этот менеджер в соответствии с жизненным циклом нагрузки.