解決httpclient訪問ssl資源報證書錯誤的問題,httpclientssl
public class HttpsTest {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
try {
SSLContext context = SSLContext.getInstance("SSL");
context.init(null, new TrustManager[] {new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString)
throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString)
throws CertificateException {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
}}, new SecureRandom());
HostnameVerifier verifier = new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
};
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(context, verifier);
HttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslConnectionSocketFactory).build();
String url = "https://pic2.zhimg.com/6f7c6805962dc58cc21d4df748f18125_xl.jpg";
HttpGet request = new HttpGet(url);
HttpResponse response = httpClient.execute(request);
HttpEntity entity = response.getEntity();
InputStream in = entity.getContent();
byte[] b = new byte[1024];
int len = 0;
OutputStream out = new FileOutputStream("E:/testImage/" + "httpstest.jpg");
while ((len = in.read(b)) != -1) {
out.write(b, 0, len);
}
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}