import?javax.net.ssl.HostnameVerifier;
import?javax.net.ssl.HttpsURLConnection;
import?javax.net.ssl.SSLContext;
import?javax.net.ssl.SSLSession;
import?javax.net.ssl.X509TrustManager;
public?class?MyHttpsConnection?{
private?myX509TrustManager?xtm?=?new?myX509TrustManager();
private?myHostnameVerifier?hnv?=?new?myHostnameVerifier();
public?MyHttpsConnection()?{
SSLContext?sslContext?=?null;
try?{
sslContext?=?SSLContext.getInstance("TLS");
X509TrustManager[]?xtmArray?=?new?X509TrustManager[]?{?xtm?};
sslContext.init(null,?xtmArray,?new?java.security.SecureRandom());
}?catch?(Exception?gse)?{
gse.printStackTrace();
}
if?(sslContext?!=?null)?{
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
}
HttpsURLConnection.setDefaultHostnameVerifier(hnv);
}
}
class?myX509TrustManager?implements?X509TrustManager?{
public?myX509TrustManager()?{
}
public?void?checkClientTrusted(X509Certificate[]?chain,?String?authType)?{
}
public?void?checkServerTrusted(X509Certificate[]?chain,?String?authType)?{
}
public?X509Certificate[]?getAcceptedIssuers()?{
return?null;
}
}
class?myHostnameVerifier?implements?HostnameVerifier?{
public?myHostnameVerifier()?{
}
public?boolean?verify(String?hostname,?SSLSession?session)?{
return?true;
}
}
調用時類似
new MyHttpsConnection();
URLConnection urlCon = (new URL(url)).openConnection();
urlCon.setConnectTimeout(5000);