diff --git a/src/Foundation/NSUrlSessionHandler.cs b/src/Foundation/NSUrlSessionHandler.cs index 3d348d71decf..1e6f508b8c1d 100644 --- a/src/Foundation/NSUrlSessionHandler.cs +++ b/src/Foundation/NSUrlSessionHandler.cs @@ -55,6 +55,7 @@ namespace Foundation { #endif public partial class NSUrlSessionHandler : HttpMessageHandler { + static readonly NSUrlSessionConfiguration configuration; readonly Dictionary headerSeparators = new Dictionary { ["User-Agent"] = " ", ["Server"] = " " @@ -64,10 +65,9 @@ public partial class NSUrlSessionHandler : HttpMessageHandler readonly Dictionary inflightRequests; readonly object inflightRequestsLock = new object (); - public NSUrlSessionHandler () + static NSUrlSessionHandler () { - AllowAutoRedirect = true; - var configuration = NSUrlSessionConfiguration.DefaultSessionConfiguration; + configuration = NSUrlSessionConfiguration.DefaultSessionConfiguration; // we cannot do a bitmask but we can set the minimum based on ServicePointManager.SecurityProtocol minimum var sp = ServicePointManager.SecurityProtocol; @@ -79,8 +79,13 @@ public NSUrlSessionHandler () configuration.TLSMinimumSupportedProtocol = SslProtocol.Tls_1_1; else if ((sp & SecurityProtocolType.Tls12) != 0) configuration.TLSMinimumSupportedProtocol = SslProtocol.Tls_1_2; + } + + public NSUrlSessionHandler () + { + AllowAutoRedirect = true; - session = NSUrlSession.FromConfiguration (NSUrlSessionConfiguration.DefaultSessionConfiguration, new NSUrlSessionHandlerDelegate (this), null); + session = NSUrlSession.FromConfiguration (configuration, new NSUrlSessionHandlerDelegate (this), null); inflightRequests = new Dictionary (); }