@ -9,8 +9,6 @@ using System.Collections.Generic;
using System.Globalization ;
using System.IO ;
using System.Linq ;
using System.Net ;
using System.Net.Cache ;
using System.Net.Http ;
using System.Text ;
using System.Threading ;
@ -33,6 +31,10 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
/// </summary>
private readonly IApplicationPaths _appPaths ;
public delegate HttpMessageHandler GetHttpMessageHandler ( bool enableHttpCompression ) ;
private readonly GetHttpMessageHandler _getHttpMessageHandler ;
/// <summary>
/// Initializes a new instance of the <see cref="HttpClientManager" /> class.
/// </summary>
@ -43,7 +45,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
/// or
/// logger
/// </exception>
public HttpClientManager ( IApplicationPaths appPaths , ILogger logger )
public HttpClientManager ( IApplicationPaths appPaths , ILogger logger , GetHttpMessageHandler getHttpMessageHandler )
{
if ( appPaths = = null )
{
@ -55,6 +57,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
}
_logger = logger ;
_getHttpMessageHandler = getHttpMessageHandler ;
_appPaths = appPaths ;
}
@ -85,15 +88,9 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
if ( ! _httpClients . TryGetValue ( key , out client ) )
{
var handler = new WebRequestHandler
{
CachePolicy = new RequestCachePolicy ( RequestCacheLevel . Revalidate ) ,
AutomaticDecompression = enableHttpCompression ? DecompressionMethods . Deflate : DecompressionMethods . None
} ;
client = new HttpClientInfo
{
HttpClient = new HttpClient ( handler )
HttpClient = new HttpClient ( _getHttpMessageHandler ( enableHttpCompression ) )
{
Timeout = TimeSpan . FromSeconds ( 20 )
}