Skip to content

Instantly share code, notes, and snippets.

@guihaojin
Forked from preethamhegdes/OkHttpUtil.java
Created October 1, 2020 19:03
Show Gist options
  • Save guihaojin/ca8dc7c5eb16a5cb85c1dea312b77153 to your computer and use it in GitHub Desktop.
Save guihaojin/ca8dc7c5eb16a5cb85c1dea312b77153 to your computer and use it in GitHub Desktop.

Revisions

  1. @preethamhegdes preethamhegdes revised this gist Jul 9, 2017. 1 changed file with 0 additions and 6 deletions.
    6 changes: 0 additions & 6 deletions OkHttpUtil.java
    Original file line number Diff line number Diff line change
    @@ -13,14 +13,8 @@ public class OkHttpUtil {

    private static final Logger LOGGER = LoggerFactory.getLogger(OkHttpUtil.class.getName());


    private static OkHttpClient client = null;
    private static Proxy httpProxy = null;

    private static boolean ignoreSslCertificate = false;
    private static SSLSocketFactory sslSocketFactory;
    private static TrustManager[] trustManager;
    private static SSLContext sslContext;

    public static OkHttpClient getClient() {
    return client;
  2. @preethamhegdes preethamhegdes created this gist Jul 9, 2017.
    88 changes: 88 additions & 0 deletions OkHttpUtil.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,88 @@
    import okhttp3.*;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    import javax.net.ssl.*;
    import java.net.*;
    import java.security.cert.CertificateException;

    /*
    okhttp version used 3.8.1
    */
    public class OkHttpUtil {

    private static final Logger LOGGER = LoggerFactory.getLogger(OkHttpUtil.class.getName());


    private static OkHttpClient client = null;
    private static Proxy httpProxy = null;

    private static boolean ignoreSslCertificate = false;
    private static SSLSocketFactory sslSocketFactory;
    private static TrustManager[] trustManager;
    private static SSLContext sslContext;

    public static OkHttpClient getClient() {
    return client;
    }

    public static void init(boolean ignoreCertificate) throws Exception {

    OkHttpClient.Builder builder = new OkHttpClient.Builder();

    LOGGER.info("Initialising httpUtil with default configuration");
    if (ignoreCertificate) {
    ignoreSslCertificate = true;
    builder = configureToIgnoreCertificate(builder);
    }

    //Other application specific configuration

    client = builder.build();
    }

    //Setting testMode configuration. If set as testMode, the connection will skip certification check
    private static OkHttpClient.Builder configureToIgnoreCertificate(OkHttpClient.Builder builder) {
    LOGGER.warn("Ignore Ssl Certificate");
    try {

    // Create a trust manager that does not validate certificate chains
    final TrustManager[] trustAllCerts = new TrustManager[] {
    new X509TrustManager() {
    @Override
    public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType)
    throws CertificateException {
    }

    @Override
    public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType)
    throws CertificateException {
    }

    @Override
    public java.security.cert.X509Certificate[] getAcceptedIssuers() {
    return new java.security.cert.X509Certificate[]{};
    }
    }
    };

    // Install the all-trusting trust manager
    final SSLContext sslContext = SSLContext.getInstance("SSL");
    sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
    // Create an ssl socket factory with our all-trusting manager
    final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

    builder.sslSocketFactory(sslSocketFactory, (X509TrustManager)trustAllCerts[0]);
    builder.hostnameVerifier(new HostnameVerifier() {
    @Override
    public boolean verify(String hostname, SSLSession session) {
    return true;
    }
    });
    } catch (Exception e) {
    LOGGER.warn("Exception while configuring IgnoreSslCertificate" + e, e);
    }
    return builder;
    }

    }