aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common.Implementations/HttpClientManager
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-02-27 13:00:49 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-02-27 13:00:49 -0500
commitf2261a669e08da703b981b9f587d0075af89c32f (patch)
tree3c3f065f33c5c8659cd47f3e43eb1281dfa722b7 /MediaBrowser.Common.Implementations/HttpClientManager
parentf0f897e97e45a489f1c02e1d81dc838a4ab5bd13 (diff)
fixed dlna headers
Diffstat (limited to 'MediaBrowser.Common.Implementations/HttpClientManager')
-rw-r--r--MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs66
1 files changed, 23 insertions, 43 deletions
diff --git a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs
index 3dcf044f7..ca9214b54 100644
--- a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs
+++ b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs
@@ -105,48 +105,12 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
return client;
}
- private WebRequest GetMonoRequest(HttpRequestOptions options, string method, bool enableHttpCompression)
- {
- var request = (HttpWebRequest)WebRequest.Create(options.Url);
-
- if (!string.IsNullOrEmpty(options.AcceptHeader))
- {
- request.Accept = options.AcceptHeader;
- }
-
- request.AutomaticDecompression = enableHttpCompression ? DecompressionMethods.Deflate : DecompressionMethods.None;
-
- request.CachePolicy = options.CachePolicy == Net.HttpRequestCachePolicy.None ?
- new RequestCachePolicy(RequestCacheLevel.BypassCache) :
- new RequestCachePolicy(RequestCacheLevel.Revalidate);
-
- request.ConnectionGroupName = GetHostFromUrl(options.Url);
- request.KeepAlive = true;
- request.Method = method;
- request.Pipelined = true;
- request.Timeout = 20000;
-
- if (!string.IsNullOrEmpty(options.UserAgent))
- {
- request.UserAgent = options.UserAgent;
- }
-
- return request;
- }
-
private PropertyInfo _httpBehaviorPropertyInfo;
private WebRequest GetRequest(HttpRequestOptions options, string method, bool enableHttpCompression)
{
-#if __MonoCS__
- return GetMonoRequest(options, method, enableHttpCompression);
-#endif
+ var request = (HttpWebRequest)WebRequest.Create(options.Url);
- var request = HttpWebRequest.CreateHttp(options.Url);
-
- if (!string.IsNullOrEmpty(options.AcceptHeader))
- {
- request.Accept = options.AcceptHeader;
- }
+ AddRequestHeaders(request, options);
request.AutomaticDecompression = enableHttpCompression ? DecompressionMethods.Deflate : DecompressionMethods.None;
@@ -160,11 +124,7 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
request.Pipelined = true;
request.Timeout = 20000;
- if (!string.IsNullOrEmpty(options.UserAgent))
- {
- request.UserAgent = options.UserAgent;
- }
-
+#if !__MonoCS__
// This is a hack to prevent KeepAlive from getting disabled internally by the HttpWebRequest
// May need to remove this for mono
var sp = request.ServicePoint;
@@ -173,10 +133,30 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
_httpBehaviorPropertyInfo = sp.GetType().GetProperty("HttpBehaviour", BindingFlags.Instance | BindingFlags.NonPublic);
}
_httpBehaviorPropertyInfo.SetValue(sp, (byte)0, null);
+#endif
return request;
}
+ private void AddRequestHeaders(HttpWebRequest request, HttpRequestOptions options)
+ {
+ foreach (var header in options.RequestHeaders.ToList())
+ {
+ if (string.Equals(header.Key, "Accept", StringComparison.OrdinalIgnoreCase))
+ {
+ request.Accept = header.Value;
+ }
+ else if (string.Equals(header.Key, "User-Agent", StringComparison.OrdinalIgnoreCase))
+ {
+ request.UserAgent = header.Value;
+ }
+ else
+ {
+ request.Headers.Set(header.Key, header.Value);
+ }
+ }
+ }
+
/// <summary>
/// Gets the response internal.
/// </summary>