经过很多测试,httpclient,httpsUrlconnection 设置ssl工厂都没看到作用,有部分文章说4.4以下手机默认不支持https,用okhttp之后进行如下这是可以起作用,附件为工厂类
public synchronized OkHttpClient getClient(){
if (okHttpClient == null) {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
try {
// 自定义一个信任所有证书的TrustManager,添加SSLSocketFactory的时候要用到
final X509TrustManager trustAllCert =
new X509TrustManager() {
@Override
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[]{};
}
};
final SSLSocketFactory sslSocketFactory = new SSLSocketFactoryCompat(trustAllCert);
builder.sslSocketFactory(sslSocketFactory, trustAllCert);
} catch (Exception e) {
throw new RuntimeException(e);
}
okHttpClient = builder.build();
}
return okHttpClient;
}