一.简述
在Android使用https连接时,有多种方法,一般可以在发起https连接之前将服务器证书加到信任证书列表中,也可以直接信任所有证书,这种方法相对简单。本文用于测试,所以使用后者。
二.代码
1.添加https配置
private class MyTrustManager implements X509TrustManager {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
// TODO Auto-generated method stub
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
// TODO Auto-generated method stub
}
@Override
public X509Certificate[] getAcceptedIssuers() {
// TODO Auto-generated method stub
return null;
}
}
2.连接示例
......
UTAdRequester requester = this.requester.get();
if (requester != null) {
URL url = new URL("https://www.baidu.com/");
// 设置信任证书
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, new TrustManager[]{new MyTrustManager()}, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(new MyHostnameVerifier());
conn = (HttpsURLConnection) url.openConnection();
}
conn.setDoOutput(true);
conn.setDoInput(true);
conn.connect();
......