dlna didl fixes

This commit is contained in:
Luke Pulverenti
2014-04-08 08:27:22 -04:00
parent 2c6a9892f2
commit b9aa4ac8be
3 changed files with 37 additions and 33 deletions

View File

@@ -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 };
}
}