added GetTempFileResponse

This commit is contained in:
Luke Pulverenti
2013-07-20 17:36:59 -04:00
parent cf057c5b27
commit 7e5bdc837a
8 changed files with 43 additions and 15 deletions

View File

@@ -374,6 +374,13 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
/// <exception cref="HttpException"></exception>
/// <exception cref="MediaBrowser.Model.Net.HttpException"></exception>
public async Task<string> GetTempFile(HttpRequestOptions options)
{
var response = await GetTempFileResponse(options).ConfigureAwait(false);
return response.TempFilePath;
}
public async Task<HttpResponseInfo> GetTempFileResponse(HttpRequestOptions options)
{
ValidateParams(options.Url, options.CancellationToken);
@@ -433,13 +440,20 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
options.Progress.Report(100);
options.CancellationToken.ThrowIfCancellationRequested();
return new HttpResponseInfo
{
TempFilePath = tempFile,
StatusCode = response.StatusCode,
ContentType = response.Content.Headers.ContentType.MediaType
};
}
}
}
catch (Exception ex)
{
HandleTempFileException(ex, options, tempFile);
throw GetTempFileException(ex, options, tempFile);
}
finally
{
@@ -448,8 +462,6 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
options.ResourcePool.Release();
}
}
return tempFile;
}
/// <summary>
@@ -501,7 +513,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
/// <param name="tempFile">The temp file.</param>
/// <returns>Task.</returns>
/// <exception cref="HttpException"></exception>
private void HandleTempFileException(Exception ex, HttpRequestOptions options, string tempFile)
private Exception GetTempFileException(Exception ex, HttpRequestOptions options, string tempFile)
{
var operationCanceledException = ex as OperationCanceledException;
@@ -513,7 +525,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
File.Delete(tempFile);
}
throw GetCancellationException(options.Url, options.CancellationToken, operationCanceledException);
return GetCancellationException(options.Url, options.CancellationToken, operationCanceledException);
}
_logger.ErrorException("Error getting response from " + options.Url, ex);
@@ -528,10 +540,10 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
if (httpRequestException != null)
{
throw new HttpException(ex.Message, ex);
return new HttpException(ex.Message, ex);
}
throw ex;
return ex;
}
/// <summary>