diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpRequest.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpRequest.cs | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpRequest.cs b/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpRequest.cs index 59e0b2a9b..2546519f4 100644 --- a/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpRequest.cs +++ b/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpRequest.cs @@ -1,15 +1,21 @@ using System; using System.Collections.Generic; +using System.Collections.Specialized; using System.IO; using System.Text; using Funq; using MediaBrowser.Common.IO; using MediaBrowser.Model.IO; using MediaBrowser.Model.Logging; +using MediaBrowser.Model.Services; using ServiceStack; using ServiceStack.Host; using ServiceStack.Web; using SocketHttpListener.Net; +using IHttpFile = MediaBrowser.Model.Services.IHttpFile; +using IHttpRequest = MediaBrowser.Model.Services.IHttpRequest; +using IHttpResponse = MediaBrowser.Model.Services.IHttpResponse; +using IResponse = MediaBrowser.Model.Services.IResponse; namespace MediaBrowser.Server.Implementations.HttpServer.SocketSharp { @@ -27,8 +33,6 @@ namespace MediaBrowser.Server.Implementations.HttpServer.SocketSharp _memoryStreamProvider = memoryStreamProvider; this.request = httpContext.Request; this.response = new WebSocketSharpResponse(logger, httpContext.Response, this); - - this.RequestPreferences = new RequestPreferences(this); } public HttpListenerRequest HttpRequest @@ -53,8 +57,6 @@ namespace MediaBrowser.Server.Implementations.HttpServer.SocketSharp public RequestAttributes RequestAttributes { get; set; } - public IRequestPreferences RequestPreferences { get; private set; } - public T TryResolve<T>() { if (typeof(T) == typeof(IHttpRequest)) @@ -324,22 +326,34 @@ namespace MediaBrowser.Server.Implementations.HttpServer.SocketSharp get { return request.UserAgent; } } - private NameValueCollectionWrapper headers; - public INameValueCollection Headers + private QueryParamCollection headers; + public QueryParamCollection Headers + { + get { return headers ?? (headers = ToQueryParams(request.Headers)); } + } + + private QueryParamCollection queryString; + public QueryParamCollection QueryString { - get { return headers ?? (headers = new NameValueCollectionWrapper(request.Headers)); } + get { return queryString ?? (queryString = MyHttpUtility.ParseQueryString(request.Url.Query)); } } - private NameValueCollectionWrapper queryString; - public INameValueCollection QueryString + private QueryParamCollection formData; + public QueryParamCollection FormData { - get { return queryString ?? (queryString = new NameValueCollectionWrapper(MyHttpUtility.ParseQueryString(request.Url.Query))); } + get { return formData ?? (formData = this.Form); } } - private NameValueCollectionWrapper formData; - public INameValueCollection FormData + private QueryParamCollection ToQueryParams(NameValueCollection collection) { - get { return formData ?? (formData = new NameValueCollectionWrapper(this.Form)); } + var result = new QueryParamCollection(); + + foreach (var key in collection.AllKeys) + { + result[key] = collection[key]; + } + + return result; } public bool IsLocal |
