aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common.Implementations/HttpClientManager
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Common.Implementations/HttpClientManager')
-rw-r--r--MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs31
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;
}