zl程序教程

您现在的位置是:首页 >  其他

当前栏目

《HttpClient官方文档》2.8 HttpClient代理配置

文档官方代理配置 httpclient 2.8
2023-09-11 14:16:09 时间
2.8. HttpClient代理配置

即使HttpClient意识到路由方案和代理连接的复杂性,它也只支持简单直连或单跳代理连接的开箱即用。

通知HttpClient连接到目标主机,最简单的方法是通过设置默认参数的代理:

HttpHost proxy = new HttpHost("someproxy", 8080);

DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);

CloseableHttpClient httpclient = HttpClients.custom()

 .setRoutePlanner(routePlanner)

 .build();

还可以指示HttpClient使用标准的JRE代理选择器来获取代理信息:

SystemDefaultRoutePlanner routePlanner = new SystemDefaultRoutePlanner(

 ProxySelector.getDefault());

CloseableHttpClient httpclient = HttpClients.custom()

 .setRoutePlanner(routePlanner)

 .build();

或者,可以利用customRoutePlanner接口的实现类来完全控制HTTP路由计算的过程:

HttpRoutePlanner routePlanner = new HttpRoutePlanner() {

 public HttpRoute determineRoute(

 HttpHost target,

 HttpRequest request,

 HttpContext context) throws HttpException {

 return new HttpRoute(target, null, new HttpHost("someproxy", 8080),

 "https".equalsIgnoreCase(target.getSchemeName()));

CloseableHttpClient httpclient = HttpClients.custom()

 .setRoutePlanner(routePlanner)

 .build();

转载自 并发编程网 - ifeve.com