Аутентифицированные настройки прокси для классического Groovy HTTPBuilder
Настройте маршрут классического HTTPBuilder и его провайдер учётных данных Apache для хоста и порта прокси.
Для приложения, использующего классический 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, должно использовать интерфейсы, поддерживаемые заменой. Храните имя хоста, целочисленный порт и схему прокси как отдельные значения при загрузке из конфигурации приложения.