From 061eb93fd05cfeae2d471fd8489519560e603a82 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Fri, 2 Feb 2018 18:11:37 +0100 Subject: [PATCH] Refactor HttpClientHandler code --- src/WireMock.Net/Http/HttpClientHelper.cs | 45 ++++++++++------------- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/src/WireMock.Net/Http/HttpClientHelper.cs b/src/WireMock.Net/Http/HttpClientHelper.cs index 83e8ba2a..7a7b411f 100644 --- a/src/WireMock.Net/Http/HttpClientHelper.cs +++ b/src/WireMock.Net/Http/HttpClientHelper.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Net; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json; @@ -12,36 +13,28 @@ namespace WireMock.Http { public static HttpClient CreateHttpClient(string clientX509Certificate2ThumbprintOrSubjectName = null) { - HttpClientHandler handler; - - if (string.IsNullOrEmpty(clientX509Certificate2ThumbprintOrSubjectName)) - { - handler = new HttpClientHandler(); - } - else - { #if NETSTANDARD || NET46 - handler = new HttpClientHandler - { - ClientCertificateOptions = ClientCertificateOption.Manual, - SslProtocols = System.Security.Authentication.SslProtocols.Tls12 | System.Security.Authentication.SslProtocols.Tls11 | System.Security.Authentication.SslProtocols.Tls, - ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true - }; + var handler = new HttpClientHandler + { + CheckCertificateRevocationList = false, + SslProtocols = System.Security.Authentication.SslProtocols.Tls12 | System.Security.Authentication.SslProtocols.Tls11 | System.Security.Authentication.SslProtocols.Tls, + ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true, + AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate + }; +#else + var handler = new WebRequestHandler + { + ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true, + AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate + }; +#endif + + if (!string.IsNullOrEmpty(clientX509Certificate2ThumbprintOrSubjectName)) + { + handler.ClientCertificateOptions = ClientCertificateOption.Manual; var x509Certificate2 = CertificateUtil.GetCertificate(clientX509Certificate2ThumbprintOrSubjectName); handler.ClientCertificates.Add(x509Certificate2); -#else - var webRequestHandler = new WebRequestHandler - { - ClientCertificateOptions = ClientCertificateOption.Manual, - ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true, - AutomaticDecompression = System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate - }; - - var x509Certificate2 = CertificateUtil.GetCertificate(clientX509Certificate2ThumbprintOrSubjectName); - webRequestHandler.ClientCertificates.Add(x509Certificate2); - handler = webRequestHandler; -#endif } // For proxy we shouldn't follow auto redirects