参考:https://blog.csdn.net/bencheng06/article/details/78520979
1、新TrustAllcert类实现X509TrustManager接口:
import java.security.cert.X509Certificate; import javax.net.ssl.X509TrustManager; public class TrustAllCerts implements X509TrustManager { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) {} @Override public void checkServerTrusted(X509Certificate[] chain, String authType) {} @Override public X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];} }
2、初始化OKHttpClient配置
OkHttpClient okHttpClient = null; OkHttpClient.Builder builder = new OkHttpClient.Builder(); builder.connectTimeout(timeout, TimeUnit.SECONDS);//响应时间 builder.readTimeout(timeout, TimeUnit.SECONDS);//读取时间 // 信任https证书 builder.hostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }); //创建管理器 TrustAllCerts trustAllCerts = new TrustAllCerts(); try { SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, new TrustManager[]{trustAllCerts}, new SecureRandom()); //为OkHttpClient设置sslSocketFactory builder.sslSocketFactory(sslContext.getSocketFactory(), trustAllCerts); okHttpClient = builder.build(); } catch (Exception e) { e.printStackTrace(); }
得到的okHttpClient,信任所有的https。