diff options
Diffstat (limited to 'MediaBrowser.Common.Implementations')
| -rw-r--r-- | MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs index 4d1a9c0d4..b75234107 100644 --- a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs +++ b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs @@ -471,7 +471,10 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager foreach (var pair in options.RequestHeaders.ToList()) { - message.Headers.Add(pair.Key, pair.Value); + if (!message.Headers.TryAddWithoutValidation(pair.Key, pair.Value)) + { + _logger.Error("Unable to add request header {0} with value {1}", pair.Key, pair.Value); + } } return message; @@ -484,9 +487,31 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager /// <returns>System.Nullable{System.Int64}.</returns> private long? GetContentLength(HttpResponseMessage response) { - IEnumerable<string> lengthValues; + IEnumerable<string> lengthValues = null; + + // Seeing some InvalidOperationException here under mono + try + { + response.Headers.TryGetValues("content-length", out lengthValues); + } + catch (InvalidOperationException ex) + { + _logger.ErrorException("Error accessing response.Headers.TryGetValues Content-Length", ex); + } + + if (lengthValues == null) + { + try + { + response.Content.Headers.TryGetValues("content-length", out lengthValues); + } + catch (InvalidOperationException ex) + { + _logger.ErrorException("Error accessing response.Content.Headers.TryGetValues Content-Length", ex); + } + } - if (!response.Headers.TryGetValues("content-length", out lengthValues) && !response.Content.Headers.TryGetValues("content-length", out lengthValues)) + if (lengthValues == null) { return null; } |
