alexrainman / ModernHttpClient

ModernHttpClient
MIT License
126 stars 28 forks source link

verifyHostnameCallback parameter function on constructor (NativeMessageHandler - Android) when customSSLVerification is true #6

Closed Titonus closed 6 years ago

Titonus commented 6 years ago

Hi,

maybe you can need use a custom verifyHostnameCallback.

Here is my proposal:

        //only droid 2018-3-16 verifyHostnameCallback because ServicePointManager is not implemented
        public NativeMessageHandler(bool throwOnCaptiveNetwork, bool customSSLVerification, NativeCookieHandler cookieHandler = null, Func<string, ISSLSession, bool> verifyHostnameCallback = null)
        {
            this.throwOnCaptiveNetwork = throwOnCaptiveNetwork;

            var clientBuilder = client.NewBuilder();

            if (customSSLVerification)
            {
                clientBuilder.HostnameVerifier(
                    verifyHostnameCallback==null?
                    (hostname, session) =>
                {
                    return HostnameVerifier.verifyServerCertificate(hostname, session) & HostnameVerifier.verifyClientCiphers(hostname, session);
                }:verifyHostnameCallback);
            }

            if (cookieHandler != null) {
                clientBuilder.CookieJar(cookieHandler);
            }

            client = clientBuilder.Build();

            noCacheCacheControl = (new CacheControl.Builder()).NoCache().Build();
        }

Thank you.

alexrainman commented 6 years ago

Done. Wait for updated release.

michaelgobbers commented 6 years ago

When will this be released?

alexrainman commented 6 years ago

Later today or tomorrow.