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];
}
}