public static HttpClientHandler Build(NativeTransportSettings settings, TimeSpan?connectionTimeout, ILog log)
        {
            EnsureInitialized(log);

            var handler = handlerFactory();

            handler.AllowAutoRedirect      = settings.AllowAutoRedirect;
            handler.AutomaticDecompression = DecompressionMethods.None;

            handler.MaxAutomaticRedirections = 3;
            handler.MaxConnectionsPerServer  = settings.MaxConnectionsPerEndpoint;
            handler.MaxResponseHeadersLength = 64 * 1024;

            handler.Proxy                 = settings.Proxy;
            handler.UseProxy              = settings.Proxy != null;
            handler.UseCookies            = false;
            handler.UseDefaultCredentials = false;
            handler.PreAuthenticate       = false;

            // (alexkir, 13.10.2017) we can safely pass callbacks only on Windows; see https://github.com/dotnet/corefx/pull/19908
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                handler.ServerCertificateCustomValidationCallback = (message, certificate2, arg3, arg4) => true;

                WinHttpHandlerTuner.Tune(handler, connectionTimeout, log);
            }

            return(handler);
        }
Example #2
0
        public static HttpClientHandler Build(NativeTransportSettings settings, TimeSpan?connectionTimeout, ILog log)
        {
            EnsureInitialized(log);

            var handler = handlerFactory();

            handler.AllowAutoRedirect      = settings.AllowAutoRedirect;
            handler.AutomaticDecompression = DecompressionMethods.None;

            handler.MaxAutomaticRedirections = 3;
            handler.MaxConnectionsPerServer  = settings.MaxConnectionsPerEndpoint;
            handler.MaxResponseHeadersLength = 64 * 1024;

            handler.Proxy                 = settings.Proxy;
            handler.UseProxy              = settings.Proxy != null;
            handler.UseCookies            = false;
            handler.UseDefaultCredentials = false;
            handler.PreAuthenticate       = false;

            handler.ServerCertificateCustomValidationCallback = settings.RemoteCertificateValidationCallback;

            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                WinHttpHandlerTuner.Tune(handler, connectionTimeout, log);
            }

            return(handler);
        }