From 6834291c0bb947ef05b861a55b9b3817c412751f Mon Sep 17 00:00:00 2001 From: mabru47 Date: Sat, 5 Aug 2017 23:50:39 +0200 Subject: [PATCH] Added custom timeout The default timeout of HttpClient is 100 seconds. This value might be too low for large files and slow network environments. --- src/SwiftClient/SwiftClient.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/SwiftClient/SwiftClient.cs b/src/SwiftClient/SwiftClient.cs index f30a0ed..8c1a0b9 100644 --- a/src/SwiftClient/SwiftClient.cs +++ b/src/SwiftClient/SwiftClient.cs @@ -12,18 +12,23 @@ public partial class Client : ISwiftClient, IDisposable public SwiftRetryManager RetryManager; protected ISwiftLogger _logger; - protected HttpClient _client = new HttpClient(); - - public Client() { } + protected HttpClient _client; + + public Client(TimeSpan? timeout = null) + { + _client = new HttpClient(); + if (timeout.HasValue) + _client.Timeout = timeout.Value; + } - public Client(SwiftCredentials credentials) : this(new SwiftAuthManager(credentials)) { } + public Client(SwiftCredentials credentials, TimeSpan? timeout = null) : this(new SwiftAuthManager(credentials), timeout) { } - public Client(SwiftCredentials credentials, ISwiftLogger logger) : this(credentials) + public Client(SwiftCredentials credentials, ISwiftLogger logger, TimeSpan? timeout = null) : this(credentials, timeout) { SetLogger(logger); } - public Client(ISwiftAuthManager authManager) + public Client(ISwiftAuthManager authManager, TimeSpan? timeout = null) :this(timeout) { if (authManager.Authenticate == null) { @@ -33,7 +38,7 @@ public Client(ISwiftAuthManager authManager) RetryManager = new SwiftRetryManager(authManager); } - public Client(ISwiftAuthManager authManager, ISwiftLogger logger) : this(authManager) + public Client(ISwiftAuthManager authManager, ISwiftLogger logger, TimeSpan? timeout = null) : this(authManager, timeout) { SetLogger(logger); }