Java中如何使用HttpClient代理访问Https呢?
下文笔者讲述HttpClient代理访问Https的方法分享
HttpClient设置代理模式的实现思路: //代理设置 HttpHost proxy = new HttpHost("8.8.8.8", 8080); httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);例:HttpClient代理访问指定https的示例
import java.io.BufferedReader; import java.io.InputStreamReader; import org.apache.http.HttpEntity; import org.apache.http.HttpHost; import org.apache.http.HttpResponse; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.methods.HttpGet; import org.apache.http.conn.params.ConnRoutePNames; import org.apache.http.impl.client.DefaultHttpClient; /** * HttpClient 使用代理访问Https */ public class HttpsProxyGet { public static void main(String[] args) throws Exception { DefaultHttpClient httpclient = new DefaultHttpClient(); // 认证的数据 // 我这里是瞎写的,请根据实际情况填写 httpclient.getCredentialsProvider().setCredentials(new AuthScope("8.8.8.8", 8080), new UsernamePasswordCredentials("username", "password")); // 访问的目标站点,端口和协议 HttpHost targetHost = new HttpHost("www.java265.com", 443, "https"); // 代理的设置 HttpHost proxy = new HttpHost("8.8.8.8", 8080); httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); // 目标地址 HttpGet httpget = new HttpGet("/adsense/login/zh_CN/?"); System.out.println("目标: " + targetHost); System.out.println("请求: " + httpget.getRequestLine()); System.out.println("代理: " + proxy); // 执行 HttpResponse response = httpclient.execute(targetHost, httpget); HttpEntity entity = response.getEntity(); System.out.println("----------------------------------------"); System.out.println(response.getStatusLine()); if (entity != null) { System.out.println("Response content length: " + entity.getContentLength()); } //返回结果 BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8")); String line = null; while ((line = reader.readLine()) != null) { System.out.println(line); } if (entity != null) { entity.consumeContent(); } } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。