Restlet の ClientResource に設定済みのプロキシコネクターを使わせる
Restlet 2.4.4 の Apache HTTP クライアントヘルパーでは、起動前にコネクターのコンテキストパラメーターを設定し、setNext で接続します。
設定済みの Client は、別のコネクターをまだ使っている ClientResource には効果がありません。Restlet 2.4.4 の org.restlet.ext.httpclient ヘルパーでは、起動前にリソースをそのクライアントに接続します。
Client connector = new Client(new Context(), Protocol.HTTPS);
connector.getContext().getParameters().set("proxyHost", "proxy.example");
connector.getContext().getParameters().set("proxyPort", "8080");
ClientResource resource = new ClientResource(
"https://service.example/status");
resource.setNext(connector);
connector.start();
try {
String body = resource.get().getText();
} finally {
resource.release();
connector.stop();
}setNext(connector) が接続点です。コンテキストはヘルパーの文書化された proxyHost と proxyPort キーを使い、ホスト名はスキームとポートから分離します。connector.start() の前に設定してください。公開 HTTP エンドポイントの場合、これら 2 つのフィールドは HTTP プロキシリストからアドレスとポートを取得します。
これは、デプロイされたヘルパーが前述の Apache 拡張であることを前提としています。JVM の http.proxyHost と http.proxyPort から既定値を取得することもできます。明示的なコンテキスト値により、このコネクターのエンドポイントが可視になります。
この例はテキスト本文を消費し、リソースを解放してコネクターを停止します。ストリーミングで使う場合も同様に、表現を消費または解放して、プールされた接続を解放できるようにする必要があります。