81,092
社区成员
发帖
与我相关
我的任务
分享
/**
* 设置代理
* @return
*/
public static CloseableHttpClient getHttpClient(String hostOrIP,int port,String userName,String password){
//设置代理地址、代理端口号、协议类型
HttpHost proxy = new HttpHost(hostOrIP,port,"http");
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
//创建认证,并设置认证范围
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope(hostOrIP,port),new UsernamePasswordCredentials(userName, password));
HttpClientBuilder builder = HttpClients.custom();
builder.setRoutePlanner(routePlanner);
builder.setDefaultCredentialsProvider(credsProvider);
CloseableHttpClient httpclient = builder.build();
// CloseableHttpClient httpclient = builder.create().build();
return httpclient;
}
//创建认证,并设置认证范围
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope(HsbcSmsUtilConfiguration.getPROXY_ADDRESS(), HsbcSmsUtilConfiguration.getPROXY_PORT()),//可以访问的范围
new UsernamePasswordCredentials(HsbcSmsUtilConfiguration.getPROXY_USERNAME(), HsbcSmsUtilConfiguration.getPROXY_PASSWORD()));//用户名和密码
CloseableHttpClient client = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
String responseText = "";
CloseableHttpResponse response = null;
// 访问的目标站点,端口和协议
HttpHost targetHost = new HttpHost(HsbcSmsUtilConfiguration.getURI(), 443, "https");
System.out.println(targetHost);
// 代理的设置
HttpHost proxy = new HttpHost(HsbcSmsUtilConfiguration.getPROXY_ADDRESS(), HsbcSmsUtilConfiguration.getPROXY_PORT());
RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
CloseableHttpClient httpclient = <...>
HttpHost targetHost = new HttpHost("localhost", 80, "http");
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope(targetHost.getHostName(), targetHost.getPort()),
new UsernamePasswordCredentials("username", "password"));
// Create AuthCache instance
AuthCache authCache = new BasicAuthCache();
// Generate BASIC scheme object and add it to the local auth cache
BasicScheme basicAuth = new BasicScheme();
authCache.put(targetHost, basicAuth);
// Add AuthCache to the execution context
HttpClientContext context = HttpClientContext.create();
context.setCredentialsProvider(credsProvider);
context.setAuthCache(authCache);
HttpGet httpget = new HttpGet("/");
for (int i = 0; i < 3; i++) {
CloseableHttpResponse response = httpclient.execute(
targetHost, httpget, context);
try {
HttpEntity entity = response.getEntity();
} finally {
response.close();
}
}
具体你再看看。