refactor http client factory for mono

This commit is contained in:
Luke Pulverenti
2013-10-02 13:05:13 -04:00
parent 9f8a1b30a1
commit bb4c918bf8
9 changed files with 52 additions and 54 deletions

View File

@@ -672,14 +672,9 @@ namespace MediaBrowser.ServerApplication
OnApplicationUpdated(package.version);
}
/// <summary>
/// Gets the HTTP message handler.
/// </summary>
/// <param name="enableHttpCompression">if set to <c>true</c> [enable HTTP compression].</param>
/// <returns>HttpMessageHandler.</returns>
protected override HttpMessageHandler GetHttpMessageHandler(bool enableHttpCompression)
protected override HttpClient CreateHttpClient(bool enableHttpCompression)
{
return HttpMessageHandlerFactory.GetHttpMessageHandler(enableHttpCompression);
return HttpClientFactory.GetHttpClient(enableHttpCompression);
}
protected override void ConfigureAutoRunAtStartup(bool autorun)

View File

@@ -188,7 +188,7 @@
<Compile Include="EntryPoints\StartupWizard.cs" />
<Compile Include="FFMpeg\FFMpegInfo.cs" />
<Compile Include="Native\Assemblies.cs" />
<Compile Include="Native\HttpMessageHandlerFactory.cs" />
<Compile Include="Native\HttpClientFactory.cs" />
<Compile Include="Native\NativeApp.cs" />
<Compile Include="Native\ServerAuthorization.cs" />
<Compile Include="Native\Autorun.cs" />

View File

@@ -1,25 +1,29 @@
using System.Net;
using System;
using System.Net;
using System.Net.Cache;
using System.Net.Http;
namespace MediaBrowser.ServerApplication.Native
{
/// <summary>
/// Class HttpMessageHandlerFactory
/// Class HttpClientFactory
/// </summary>
public static class HttpMessageHandlerFactory
public static class HttpClientFactory
{
/// <summary>
/// Gets the HTTP message handler.
/// Gets the HTTP client.
/// </summary>
/// <param name="enableHttpCompression">if set to <c>true</c> [enable HTTP compression].</param>
/// <returns>HttpMessageHandler.</returns>
public static HttpMessageHandler GetHttpMessageHandler(bool enableHttpCompression)
/// <returns>HttpClient.</returns>
public static HttpClient GetHttpClient(bool enableHttpCompression)
{
return new WebRequestHandler
return new HttpClient(new WebRequestHandler
{
CachePolicy = new RequestCachePolicy(RequestCacheLevel.Revalidate),
AutomaticDecompression = enableHttpCompression ? DecompressionMethods.Deflate : DecompressionMethods.None
})
{
Timeout = TimeSpan.FromSeconds(20)
};
}
}