HttpClient代理服务器配置

使用代理服务器最简单的方式就是,指定一个默认的proxy参数。

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();

 

又或者,我们也可以手动配置RoutePlanner,这样就可以完全控制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();

    }

}


可以封装成一个方法来获取一个proxyHttpClient实例:

public static CloseableHttpClient getProxyHttpClient(IP ip){
		HttpHost proxy=new HttpHost(ip.getHost(),ip.getPort());
		DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
		CloseableHttpClient proxyHttpClient=HttpClients.custom().setRoutePlanner(routePlanner).build();
		return proxyHttpClient;
	}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值