public class ComHttpClient {
protected OkHttpClient client;
public ComHttpClient () {
init();
}
private static int READ_TIMEOUT = 30000 ;
private static int CONNECT_TIMEOUT = 30000 ;
private static int CONNECTION_POOL_MAX_IDEL = 20 ;
private static int CONNECTION_POOL_KEEP_ALIVE = 20 ;
public void init () {
ConnectionPool connectionPool = new ConnectionPool(CONNECTION_POOL_MAX_IDEL, CONNECTION_POOL_KEEP_ALIVE, TimeUnit.MINUTES);
TrustAllManager trustAllManager = new TrustAllManager();
this .client = new OkHttpClient().newBuilder()
.connectionPool(connectionPool)
.connectTimeout(CONNECT_TIMEOUT, TimeUnit.MILLISECONDS)
.readTimeout(READ_TIMEOUT, TimeUnit.MILLISECONDS)
.sslSocketFactory(createTrustAllSSLFactory(trustAllManager), trustAllManager)
.hostnameVerifier(createTrustAllHostnameVerifier())
.retryOnConnectionFailure(true ).build();
}
protected SSLSocketFactory createTrustAllSSLFactory (TrustAllManager trustAllManager) {
SSLSocketFactory ssfFactory = null ;
try {
SSLContext sc = SSLContext.getInstance("TLS" );
sc.init(null , new TrustManager[]{trustAllManager}, new SecureRandom());
ssfFactory = sc.getSocketFactory();
} catch (Exception ignored) {
ignored.printStackTrace();
}
return ssfFactory;
}
protected HostnameVerifier createTrustAllHostnameVerifier () {
return new HostnameVerifier() {
@Override
public boolean verify (String hostname, SSLSession session) {
return true ;
}
};
}
}
import javax.net.ssl.X509TrustManager;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
public class TrustAllManager implements 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 ];
}
}