refactored GetMemoryStream to use Get

This commit is contained in:
Luke Pulverenti 2013-04-20 15:33:20 -04:00
parent b88f990b82
commit 9c1e771af5

View File

@ -363,68 +363,25 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
cancellationToken.ThrowIfCancellationRequested();
var message = new HttpRequestMessage(HttpMethod.Get, url);
if (resourcePool != null)
{
await resourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);
}
_logger.Info("HttpClientManager.GetMemoryStream url: {0}", url);
var ms = new MemoryStream();
_logger.Info("HttpClientManager.GetMemoryStream url: {0}", url);
try
{
cancellationToken.ThrowIfCancellationRequested();
using (var response = await GetHttpClient(GetHostFromUrl(url)).SendAsync(message, HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false))
{
EnsureSuccessStatusCode(response);
cancellationToken.ThrowIfCancellationRequested();
using (var stream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false))
using (var stream = await Get(url, resourcePool, cancellationToken).ConfigureAwait(false))
{
await stream.CopyToAsync(ms, StreamDefaults.DefaultCopyToBufferSize, cancellationToken).ConfigureAwait(false);
}
cancellationToken.ThrowIfCancellationRequested();
}
ms.Position = 0;
return ms;
}
catch (OperationCanceledException ex)
catch
{
ms.Dispose();
throw GetCancellationException(url, cancellationToken, ex);
}
catch (HttpRequestException ex)
{
_logger.ErrorException("Error getting response from " + url, ex);
ms.Dispose();
throw new HttpException(ex.Message, ex);
}
catch (Exception ex)
{
_logger.ErrorException("Error getting response from " + url, ex);
ms.Dispose();
throw;
}
finally
{
if (resourcePool != null)
{
resourcePool.Release();
}
}
}
/// <summary>