Пример #1
0
        public static bool setGZipCompression_forAjaxRequests(HttpRequestBase request, HttpResponseBase response)
        {
            if (request.isNull() || response.isNull())
            {
                return(false);
            }
            //based on code from http://geekswithblogs.net/rashid/archive/2007/09/15/Compress-Asp.net-Ajax-Web-Service-Response---Save-Bandwidth.aspx
            if (TMConfig.Current.enableGZipForWebServices().isFalse())
            {
                return(false);
            }
            if (request.Url.isNull() || request.Url.AbsolutePath.starts("/rest")) //disabled it for rest requests
            {
                return(false);
            }
            try
            {
                if (request.ContentType.lower().starts(new List <string> {
                    "text/xml", "application/json"
                }))
                {
                    string acceptEncoding = request.Headers["Accept-Encoding"];

                    if (!string.IsNullOrEmpty(acceptEncoding))
                    {
                        acceptEncoding = acceptEncoding.ToLower(CultureInfo.InvariantCulture);

                        if (acceptEncoding.Contains("gzip"))
                        {
                            response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
                            response.AddHeader("Content-encoding", "gzip");
                            return(true);
                        }
                        if (acceptEncoding.Contains("deflate"))
                        {
                            response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
                            response.AddHeader("Content-encoding", "deflate");
                            return(true);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ex.log("in enableGZipCompression_forAjaxRequests");
            }
            return(false);
        }
        public static HttpCookie set_Cookie(this HttpResponseBase response, string name, string value)
        {
            if (response.isNull() || name.isNull())
            {
                return(null);
            }
            var httpCookie = (response.hasCookie(name))
                                ? response.Cookies[name]
                                : new HttpCookie(name);

            if (httpCookie.notNull())
            {
                httpCookie.Value = value;

                if ((response.hasCookie(name).isFalse()))
                {
                    response.Cookies.Add(httpCookie);
                }
            }
            return(httpCookie);
        }