diff --git a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs
index f8edda203..e605910cc 100644
--- a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs
+++ b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs
@@ -104,6 +104,8 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
cancellationToken.ThrowIfCancellationRequested();
+ var message = new HttpRequestMessage(HttpMethod.Get, url);
+
if (resourcePool != null)
{
await resourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);
@@ -115,11 +117,14 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
{
cancellationToken.ThrowIfCancellationRequested();
- var msg = await GetHttpClient(GetHostFromUrl(url)).GetAsync(url, cancellationToken).ConfigureAwait(false);
+ using (var response = await GetHttpClient(GetHostFromUrl(url)).SendAsync(message, HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false))
+ {
+ EnsureSuccessStatusCode(response);
- EnsureSuccessStatusCode(msg);
+ cancellationToken.ThrowIfCancellationRequested();
- return await msg.Content.ReadAsStreamAsync().ConfigureAwait(false);
+ return await response.Content.ReadAsStreamAsync().ConfigureAwait(false);
+ }
}
catch (OperationCanceledException ex)
{
@@ -131,6 +136,12 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
throw new HttpException(ex.Message, ex);
}
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error getting response from " + url, ex);
+
+ throw;
+ }
finally
{
if (resourcePool != null)
@@ -139,7 +150,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
}
}
}
-
+
///
/// Performs a POST request
///
@@ -209,27 +220,12 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
/// progress
///
///
- public Task GetTempFile(HttpRequestOptions options)
- {
- var tempFile = Path.Combine(_appPaths.TempDirectory, Guid.NewGuid() + ".tmp");
-
- return GetTempFile(options, tempFile);
- }
-
- protected static readonly CultureInfo UsCulture = new CultureInfo("en-US");
-
- ///
- /// Gets the temp file.
- ///
- /// The options.
- /// The temp file.
- /// Task{System.String}.
- /// progress
- ///
- private async Task GetTempFile(HttpRequestOptions options, string tempFile)
+ public async Task GetTempFile(HttpRequestOptions options)
{
ValidateParams(options.Url, options.CancellationToken);
+ var tempFile = Path.Combine(_appPaths.TempDirectory, Guid.NewGuid() + ".tmp");
+
if (options.Progress == null)
{
throw new ArgumentNullException("progress");
@@ -250,7 +246,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
}
options.Progress.Report(0);
-
+
_logger.Info("HttpClientManager.GetTempFile url: {0}, temp file: {1}", options.Url, tempFile);
try
@@ -310,6 +306,8 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
return tempFile;
}
+ protected static readonly CultureInfo UsCulture = new CultureInfo("en-US");
+
///
/// Handles the temp file exception.
///