Ein konfigurierter Client wirkt sich nicht auf einen ClientResource aus, der noch einen anderen Connector verwendet. Beim org.restlet.ext.httpclient-Helper von Restlet 2.4.4 verbinden Sie die Ressource vor dem Start mit diesem Client:

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) ist der Verbindungspunkt. Der Kontext verwendet die dokumentierten Schlüssel proxyHost und proxyPort des Helpers, wobei der Hostname von Schema und Port getrennt ist. Setzen Sie sie vor connector.start(). Für einen öffentlichen HTTP-Endpunkt entnehmen diese beiden Felder Adresse und Port der HTTP-Proxy-Liste.

Dies setzt voraus, dass der bereitgestellte Helper die genannte Apache-Erweiterung ist. Er kann Standardwerte auch aus JVM http.proxyHost und http.proxyPort beziehen; explizite Kontextwerte machen den Endpunkt dieses Connectors sichtbar.

Das Beispiel liest den Textkörper, gibt die Ressource frei und stoppt den Connector. Eine Streaming-Nutzung muss ihre Repräsentation ebenfalls lesen oder freigeben, damit gepoolte Verbindungen freigegeben werden können.

Ähnliche Artikel