59 lines
1.8 KiB
Plaintext
59 lines
1.8 KiB
Plaintext
|
package com.novelbook.android.netutils;
|
||
|
|
||
|
import java.security.SecureRandom;
|
||
|
import java.security.cert.X509Certificate;
|
||
|
|
||
|
import javax.net.ssl.HostnameVerifier;
|
||
|
import javax.net.ssl.SSLContext;
|
||
|
import javax.net.ssl.SSLSession;
|
||
|
import javax.net.ssl.SSLSocketFactory;
|
||
|
import javax.net.ssl.TrustManager;
|
||
|
import javax.net.ssl.X509TrustManager;
|
||
|
|
||
|
public class SSLSocketClient {
|
||
|
|
||
|
//获取这个SSLSocketFactory
|
||
|
public static SSLSocketFactory getSSLSocketFactory() {
|
||
|
try {
|
||
|
SSLContext sslContext = SSLContext.getInstance("SSL");
|
||
|
sslContext.init(null, getTrustManager(), new SecureRandom());
|
||
|
return sslContext.getSocketFactory();
|
||
|
} catch (Exception e) {
|
||
|
throw new RuntimeException(e);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//获取TrustManager
|
||
|
private static TrustManager[] getTrustManager() {
|
||
|
TrustManager[] trustAllCerts = new TrustManager[]{
|
||
|
new X509TrustManager() {
|
||
|
@Override
|
||
|
public void checkClientTrusted(X509Certificate[] chain, String authType) {
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void checkServerTrusted(X509Certificate[] chain, String authType) {
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public X509Certificate[] getAcceptedIssuers() {
|
||
|
return new X509Certificate[]{};
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
return trustAllCerts;
|
||
|
}
|
||
|
|
||
|
//获取HostnameVerifier
|
||
|
public static HostnameVerifier getHostnameVerifier() {
|
||
|
HostnameVerifier hostnameVerifier = new HostnameVerifier() {
|
||
|
@Override
|
||
|
public boolean verify(String s, SSLSession sslSession) {
|
||
|
return true;
|
||
|
}
|
||
|
};
|
||
|
return hostnameVerifier;
|
||
|
}
|
||
|
|
||
|
}
|