okhttp-----------------------在build的之前设置一下
我抽成一个静态的方法,传入对象调用即可
public static void setSSLsocket(OkHttpClient.Builder okHttpClient) {
//信任所有服务器地址
okHttpClient.hostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String s, SSLSession sslSession) {
//设置为true
return true;
}
});
//创建管理器
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
@Override
public void checkClientTrusted(
java.security.cert.X509Certificate[] x509Certificates,
String s) throws java.security.cert.CertificateException {
}
@Override
public void checkServerTrusted(
java.security.cert.X509Certificate[] x509Certificates,
String s) throws java.security.cert.CertificateException {
}
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[] {};
}
} };
try {
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
//为OkHttpClient设置sslSocketFactory
okHttpClient.sslSocketFactory(sslContext.getSocketFactory(), new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
webSocket------------------在conncet之前设置
调用上面的静态方法设置,将设置好的规则给socket
if (!"http://".equals(CommonUtils.getProtocol())) {
// 加密协议-----设置信任所有证书
OkHttpClient.Builder okHttpClient = new OkHttpClient.Builder();
RxHelper.setSSLsocket(okHttpClient);
OkHttpClient build = okHttpClient.build();
mWebSocketClient.setSocket(build.sslSocketFactory().createSocket());
}
HttpURLConnection
//获取对象
SSLContext context = SSLContext.getInstance("TLS");
//设置管理器
context.init(null, new TrustManager[]{new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
}}, null);
//设置管理器
HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String arg0, SSLSession arg1) {
//返回true
return true;
}
});
//interUrl是URL对象,使用自的即可
cnt = (HttpsURLConnection) interUrl.openConnection();