mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-17 06:23:03 +03:00
added GetTempFileResponse
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user