Для приложения, использующего классический groovyx.net.http.HTTPBuilder, задайте маршрут в builder и учётную запись прокси в провайдере учётных данных его клиента Apache HTTP:

import groovyx.net.http.HTTPBuilder
import org.apache.http.auth.AuthScope
import org.apache.http.auth.UsernamePasswordCredentials

def http = new HTTPBuilder('https://api.example.net')
http.setProxy('proxy.example.net', 8080, 'http')

http.client.credentialsProvider.setCredentials(
    new AuthScope('proxy.example.net', 8080),
    new UsernamePasswordCredentials(proxyUser, proxyPassword)
)

Переменные учётных данных берутся из приложения. AuthScope соответствует хосту и порту прокси, настроенным непосредственно выше. Последующие запросы через этот builder используют этот настроенный клиент.

Реализация классического HTTPBuilder по умолчанию создаёт Apache DefaultHttpClient, а его публичный метод setProxy задаёт маршрут прокси по умолчанию для этого клиента. Это и есть нужный объект конфигурации, даже когда само приложение работает внутри Grails или Tomcat.

Пример рассчитан на этот классический API. У HTTPBuilder-NG другая модель конфигурации, и приложение, заменяющее базовый клиент классического builder, должно использовать интерфейсы, поддерживаемые заменой. Храните имя хоста, целочисленный порт и схему прокси как отдельные значения при загрузке из конфигурации приложения.

Похожие статьи