import java.io.*;import java.net.*;importjava.security.KeyManagementException;importjava.security.NoSuchAlgorithmException;importjava.security.cert.CertificateException;importjava.security.cert.X509Certificate;import javax.net.ssl.*;public classTrustSSL {private static class TrustAnyTrustManager implementsX509TrustManager {public voidcheckClientTrusted(X509Certificate[] chain, String authType)throwsCertificateException {
}public voidcheckServerTrusted(X509Certificate[] chain, String authType)throwsCertificateException {
}publicX509Certificate[] getAcceptedIssuers() {return newX509Certificate[] {};
}
}private static class TrustAnyHostnameVerifier implementsHostnameVerifier {public booleanverify(String hostname, SSLSession session) {return true;
}
}public staticInputStream HttpsSSL(URL strUrl){try{
SSLContext sc= SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { new TrustAnyTrustManager() },newjava.security.SecureRandom());
HttpsURLConnection conn=(HttpsURLConnection) strUrl.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
conn.setHostnameVerifier(newTrustAnyHostnameVerifier());//设置超时间为5秒
conn.setConnectTimeout(5 * 1000);//防止屏蔽程序抓取而返回403错误
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
conn.connect();//获取服务器响应代码
int responsecode =conn.getResponseCode();if (responsecode == 200) {//得到输入流
returnconn.getInputStream();
}else{
System.out.println("获取不到 " + strUrl + " 源码,服务器响应代码为:" +responsecode);return null;
}
}catch(NoSuchAlgorithmException e) {
e.printStackTrace();
}catch(KeyManagementException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}return null;
}public static void main(String[] args) throwsException {
HttpsSSL(new URL("url"));
}
}