概述
一、Maven依赖
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
二、工具方法
/**
* 构建的HTTP客户端
* @param useProxy
* @param proxyIp
* @param proxyPort
* @return
* @author: fuyang.qin
* @date: 2020/12/16
*/
private CloseableHttpClient buildHttpClient(String useProxy, String proxyIp, String proxyPort) {
CloseableHttpClient httpClient;
if (useProxyFlag.equals(useProxy.toLowerCase())) {
// 代理
HttpHost pr = new HttpHost(proxyIp, Integer.parseInt(proxyPort), "http");
RequestConfig defaultRequestConfig = RequestConfig.custom().setProxy(pr).build();
httpClient = HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
} else {
// 非代理
httpClient = HttpClients.createDefault();
}
return httpClient;
}
Tip:此处参数useProxy为数据库获取到的配置所以使用String类型,根据需要改为boolean类型可能更合适
三、使用
public static void main(String[] args) {
// CloseableHttpClient httpClient = new ProxyTest().buildHttpClient("true", "10.10.122.33", "9000");
CloseableHttpClient httpClient = new ProxyTest().buildHttpClient("false", null, null);
try {
HttpGet httpGet = new HttpGet("http://baidu.com");
CloseableHttpResponse response = httpClient.execute(httpGet);
String resp;
try {
HttpEntity entity = response.getEntity();
resp = EntityUtils.toString(entity, "UTF-8");
EntityUtils.consume(entity);
} finally {
response.close();
}
System.out.println(resp);
} catch (Exception e) {
e.printStackTrace();
}
}
最后
以上就是感动世界为你收集整理的HttpClient使用代理的全部内容,希望文章能够帮你解决HttpClient使用代理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复