diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-10-13 17:22:25 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-10-13 17:22:25 -0400 |
| commit | 3d3876c9a94b86e25b6d663d65285e220fc93bcc (patch) | |
| tree | 578ce5e8a146bc842d285e3612024d6ee8ed67dd /MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs | |
| parent | 645a41b193a958672a33208b0768cc1d25a4d852 (diff) | |
better crash logging
Diffstat (limited to 'MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs')
| -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; } |
