diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-04-08 08:27:22 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-04-08 08:27:22 -0400 |
| commit | b9aa4ac8be483ea0d0da235b6446bef4009de297 (patch) | |
| tree | 2bfc0b6bc1d878b6c9aa8e9d1a61a91e658c3a74 /MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs | |
| parent | 2c6a9892f2082c6a288ba01033f3fd7d517fa92e (diff) | |
dlna didl fixes
Diffstat (limited to 'MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs')
| -rw-r--r-- | MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs | 59 |
1 files changed, 29 insertions, 30 deletions
diff --git a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs index 7fd7c8c1c..96c207b7b 100644 --- a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs +++ b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs @@ -113,11 +113,11 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager AddRequestHeaders(request, options); request.AutomaticDecompression = enableHttpCompression ? DecompressionMethods.Deflate : DecompressionMethods.None; - + request.CachePolicy = options.CachePolicy == Net.HttpRequestCachePolicy.None ? new RequestCachePolicy(RequestCacheLevel.BypassCache) : new RequestCachePolicy(RequestCacheLevel.Revalidate); - + request.ConnectionGroupName = GetHostFromUrl(options.Url); request.KeepAlive = true; request.Method = method; @@ -270,18 +270,18 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager var httpResponse = (HttpWebResponse)response; - EnsureSuccessStatusCode(httpResponse); + EnsureSuccessStatusCode(httpResponse, options); options.CancellationToken.ThrowIfCancellationRequested(); return GetResponseInfo(httpResponse, httpResponse.GetResponseStream(), GetContentLength(httpResponse)); } - + using (var response = await httpWebRequest.GetResponseAsync().ConfigureAwait(false)) { var httpResponse = (HttpWebResponse)response; - EnsureSuccessStatusCode(httpResponse); + EnsureSuccessStatusCode(httpResponse, options); options.CancellationToken.ThrowIfCancellationRequested(); @@ -345,29 +345,6 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager { _logger.ErrorException("Error getting response from " + options.Url, ex); - if (options.LogErrorResponseBody) - { - try - { - using (var stream = ex.Response.GetResponseStream()) - { - if (stream != null) - { - using (var reader = new StreamReader(stream)) - { - var msg = reader.ReadToEnd(); - - _logger.Error(msg); - } - } - } - } - catch - { - - } - } - return new HttpException(ex.Message, ex); } @@ -496,7 +473,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager { var httpResponse = (HttpWebResponse)response; - EnsureSuccessStatusCode(httpResponse); + EnsureSuccessStatusCode(httpResponse, options); options.CancellationToken.ThrowIfCancellationRequested(); @@ -686,13 +663,35 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager return exception; } - private void EnsureSuccessStatusCode(HttpWebResponse response) + private void EnsureSuccessStatusCode(HttpWebResponse response, HttpRequestOptions options) { var statusCode = response.StatusCode; var isSuccessful = statusCode >= HttpStatusCode.OK && statusCode <= (HttpStatusCode)299; if (!isSuccessful) { + if (options.LogErrorResponseBody) + { + try + { + using (var stream = response.GetResponseStream()) + { + if (stream != null) + { + using (var reader = new StreamReader(stream)) + { + var msg = reader.ReadToEnd(); + + _logger.Error(msg); + } + } + } + } + catch + { + + } + } throw new HttpException(response.StatusDescription) { StatusCode = response.StatusCode }; } } |
