用 java 写的爬虫,用 httpclient 发送 post 请求,在 jdk7 下每次都会遇到 connection reset , jdk 切换成 jdk8 下没有问题。我试了一下,发现对于这个网站,只要是在 jdk7 的环境下, httpclient 发的请求都会被 connection reset ,而 jdk8 环境下就不会。 引用的 httpclient 是 4.3.6 版本,为什么两种不同的 jdk 之下会有这样的差别,求指点一二。
DefaultHttpClient httpClient = HttpTools.getHttpClient("");
enableSSL( httpClient);
String testurl = "https://book.flypeach.com";
HttpGet httpGet = new HttpGet(testurl);
HttpResponse httpResponse = httpClient.execute( httpGet);
System.out.println("status:" + httpResponse.getStatusLine());
public static void enableSSL(HttpClient httpclient) {
try {
SSLContext sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(null, new TrustManager[] { truseAllManager }, null);
SSLSocketFactory sf = new SSLSocketFactory(sslcontext);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Scheme https = new Scheme("https", sf, 443);
httpclient.getConnectionManager().getSchemeRegistry()
.register( https);
} catch (Exception e) {
e.printStackTrace();
}
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.