让 Restlet 的 ClientResource 使用你配置的代理连接器
对于 Restlet 2.4.4 的 Apache HTTP 客户端助手,在启动前设置连接器上下文参数,并用 setNext 挂接。
已配置的 Client 对仍在使用其他连接器的 ClientResource 没有任何作用。对于 Restlet 2.4.4 的 org.restlet.ext.httpclient 助手,请在启动前把该资源挂接到这个 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) 就是挂接点。上下文使用该助手文档中说明的 proxyHost 和 proxyPort 键,主机名与协议和端口分开。请在 connector.start() 之前设置它们。对于公开的 HTTP 端点,这两个字段从 HTTP 代理列表中取得地址和端口。
这里假定所部署的助手就是所述 Apache 扩展。它也可以从 JVM 的 http.proxyHost 和 http.proxyPort 获取默认值;显式的上下文值能让这个连接器的端点可见。
示例会读取文本正文、释放资源并停止连接器。流式用法同样必须读取或释放其表示,这样才能释放池化连接。