diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-20 14:03:09 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-20 14:03:09 -0400 |
| commit | c11c8bfdb4c5a28c8218e3693021ac980c931321 (patch) | |
| tree | 1fe91b36bea37581d624ec94db80c9a941701682 | |
| parent | 466d00b0214ba80421e53473b8cb5f38278adda1 (diff) | |
re-enable http compression for all providers except for last fm
4 files changed, 23 insertions, 10 deletions
diff --git a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs index 074994619c..c84239f92a 100644 --- a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs +++ b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs @@ -80,7 +80,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager /// <param name="host">The host.</param> /// <returns>HttpClient.</returns> /// <exception cref="System.ArgumentNullException">host</exception> - private HttpClient GetHttpClient(string host) + private HttpClient GetHttpClient(string host, bool enableHttpCompression) { if (string.IsNullOrEmpty(host)) { @@ -88,17 +88,20 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager } HttpClient client; - if (!_httpClients.TryGetValue(host, out client)) + + var key = host + enableHttpCompression; + + if (!_httpClients.TryGetValue(key, out client)) { var handler = new WebRequestHandler { CachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache), - AutomaticDecompression = DecompressionMethods.None + AutomaticDecompression = enableHttpCompression ? DecompressionMethods.Deflate : DecompressionMethods.None }; client = new HttpClient(handler); client.Timeout = TimeSpan.FromSeconds(20); - _httpClients.TryAdd(host, client); + _httpClients.TryAdd(key, client); } return client; @@ -182,7 +185,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager { options.CancellationToken.ThrowIfCancellationRequested(); - var response = await GetHttpClient(GetHostFromUrl(options.Url)).SendAsync(message, HttpCompletionOption.ResponseHeadersRead, options.CancellationToken).ConfigureAwait(false); + var response = await GetHttpClient(GetHostFromUrl(options.Url), options.EnableHttpCompression).SendAsync(message, HttpCompletionOption.ResponseHeadersRead, options.CancellationToken).ConfigureAwait(false); if (options.EnableResponseCache) { @@ -411,7 +414,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager { cancellationToken.ThrowIfCancellationRequested(); - var msg = await GetHttpClient(GetHostFromUrl(url)).PostAsync(url, content, cancellationToken).ConfigureAwait(false); + var msg = await GetHttpClient(GetHostFromUrl(url), false).PostAsync(url, content, cancellationToken).ConfigureAwait(false); EnsureSuccessStatusCode(msg); @@ -472,7 +475,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager using (var message = GetHttpRequestMessage(options)) { - using (var response = await GetHttpClient(GetHostFromUrl(options.Url)).SendAsync(message, HttpCompletionOption.ResponseHeadersRead, options.CancellationToken).ConfigureAwait(false)) + using (var response = await GetHttpClient(GetHostFromUrl(options.Url), options.EnableHttpCompression).SendAsync(message, HttpCompletionOption.ResponseHeadersRead, options.CancellationToken).ConfigureAwait(false)) { EnsureSuccessStatusCode(response); diff --git a/MediaBrowser.Common/Net/HttpRequestOptions.cs b/MediaBrowser.Common/Net/HttpRequestOptions.cs index f257b19752..7fb621b010 100644 --- a/MediaBrowser.Common/Net/HttpRequestOptions.cs +++ b/MediaBrowser.Common/Net/HttpRequestOptions.cs @@ -49,5 +49,12 @@ namespace MediaBrowser.Common.Net /// </summary> /// <value><c>true</c> if [enable response caching]; otherwise, <c>false</c>.</value> public bool EnableResponseCache { get; set; } + + public bool EnableHttpCompression { get; set; } + + public HttpRequestOptions() + { + EnableHttpCompression = true; + } } } diff --git a/MediaBrowser.Controller/Providers/Music/LastfmAlbumProvider.cs b/MediaBrowser.Controller/Providers/Music/LastfmAlbumProvider.cs index 8ee2f4a267..0216c990fb 100644 --- a/MediaBrowser.Controller/Providers/Music/LastfmAlbumProvider.cs +++ b/MediaBrowser.Controller/Providers/Music/LastfmAlbumProvider.cs @@ -113,7 +113,8 @@ namespace MediaBrowser.Controller.Providers.Music Url = url, ResourcePool = LastfmResourcePool, CancellationToken = cancellationToken, - EnableResponseCache = true + EnableResponseCache = true, + EnableHttpCompression = false }).ConfigureAwait(false)) { diff --git a/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs b/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs index 4fe7f522cf..ed2a09a4ff 100644 --- a/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs +++ b/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs @@ -98,7 +98,8 @@ namespace MediaBrowser.Controller.Providers.Music Url = url, ResourcePool = LastfmResourcePool, CancellationToken = cancellationToken, - EnableResponseCache = true + EnableResponseCache = true, + EnableHttpCompression = false }).ConfigureAwait(false)) { @@ -191,7 +192,8 @@ namespace MediaBrowser.Controller.Providers.Music Url = url, ResourcePool = LastfmResourcePool, CancellationToken = cancellationToken, - EnableResponseCache = true + EnableResponseCache = true, + EnableHttpCompression = false }).ConfigureAwait(false)) { |
