public class HttpUtils {
public static class VulX509TrustManager extends X509ExtendedTrustManager {
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1, Socket arg2) throws CertificateException {
}
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1, SSLEngine arg2)
throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1, Socket arg2) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1, SSLEngine arg2)
throws CertificateException {
}
}
private static SSLContext X509TrustManagerIgnoreCertificate() {
TrustManager[] tm = { new VulX509TrustManager() };
SSLContext ctx = null;
try {
ctx = SSLContext.getInstance("TLS");
ctx.init(null, tm, null);
} catch (Exception e) {
e.printStackTrace();
}
return ctx;
}
private static final class SslContextInstanceHolder {
static final SSLContext sslContextInstance = X509TrustManagerIgnoreCertificate();
}
public static SSLContext getSslContextIgnoreCertInstance() {
return SslContextInstanceHolder.sslContextInstance;
}
url = new URL(url);
File file = new File(filePath);
InetSocketAddress addr = new InetSocketAddress("xxx.xx", 端口号);
proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
HttpsURLConnection urlOnnection = (HttpsURLConnection) url.openConnection(proxy);
SSLContext sslContextIgnoreCertInstance = HttpUtils.getSslContextIgnoreCertInstance();
urlOnnection.setSSLSocketFactory(sslContextIgnoreCertInstance.getSocketFactory());
urlOnnection.setHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String arg0, SSLSession arg1) {
return true;
}
});
InputStream inputStream = urlOnnection.getInputStream();
FileUtils.copyInputStreamToFile(inputStream, file);