Esempio n. 1
0
        internal HttpContext(HttpListenerContext context, IRestServer server, CancellationToken token)
        {
            Advanced          = context;
            Server            = server;
            CancellationToken = token;

            // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding
            var acceptEncoding    = context.Request.Headers.GetValue <string>("Accept-Encoding", string.Empty);
            var identityForbidden = (acceptEncoding.Contains("identity;q=0") || acceptEncoding.Contains("*;q=0"));

            Request  = new HttpRequest(context.Request);
            Response = new HttpResponse(context.Response)
            {
                CompressionProvider    = new CompressionProvider(QualityValues.Parse(acceptEncoding), identityForbidden),
                ContentExpiresDuration = server.Router.Options.ContentExpiresDuration
            };

            server.ApplyGlobalResponseHeaders(Response.Headers);
        }
Esempio n. 2
0
        public static IList <string> SortQualityValues(this NameValueCollection collection, string key)
        {
            var unparsed = collection.GetValue <string>(key, string.Empty);

            if (string.IsNullOrWhiteSpace(unparsed))
            {
                return(new List <string>());
            }
            if (!unparsed.Contains(","))
            {
                return new List <string>()
                       {
                           unparsed
                       }
            }
            ;

            return(QualityValues.Parse(unparsed));
        }
    }