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); }
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)); } }