クラシックな groovyx.net.http.HTTPBuilder を使うアプリケーションでは、ビルダーにルートを、その 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 は直前で構成したプロキシのホストとポートに一致させます。このビルダーを経由する以降のリクエストは、その構成済みクライアントを使います。

クラシック HTTPBuilder の既定の実装は Apache DefaultHttpClient を生成し、公開メソッド setProxy がそのクライアントの既定プロキシルートを設定します。アプリケーション自体が Grails や Tomcat の中で動作していても、関係する構成対象はこれです。

この例はそのクラシック API を対象にしています。HTTPBuilder-NG は構成モデルが異なるため、クラシックなビルダーの基盤クライアントを差し替えるアプリケーションは、差し替え側が対応するインターフェースを使う必要があります。アプリケーション構成から読み込むときは、ホスト名、整数のポート、プロキシのスキームを別々の値として保持してください。

関連記事