Esempio n. 1
0
        /// <summary>
        /// If supported, removes a runtime compression filter from the response output.
        /// </summary>
        /// <param name="context"></param>
        public static void DisableStreamCompression(HttpContext context)
        {
            switch (ResourceHandler.GetOutputEncoding(context))
            {
            case BuildResultType.Gzip:
            {
#if !__MonoCS__
// remove for Mono Framework
                try
                {
                    if (ResourceHandler.GzipContentEncoding.Equals(context.Response.Headers[ResourceHandler.HeaderContentEncoding], StringComparison.OrdinalIgnoreCase))
                    {
                        context.Response.Headers.Remove(ResourceHandler.HeaderContentEncoding);
                    }
                }
                catch (PlatformNotSupportedException) { }
#endif

                if (context.Response.Filter is GZipStream)
                {
                    context.Response.Filter = null;
                }
                break;
            }

            case BuildResultType.Deflate:
            {
#if !__MonoCS__
// remove for Mono Framework
                try
                {
                    if (ResourceHandler.DeflateContentEncoding.Equals(context.Response.Headers[ResourceHandler.HeaderContentEncoding], StringComparison.OrdinalIgnoreCase))
                    {
                        context.Response.Headers.Remove(ResourceHandler.HeaderContentEncoding);
                    }
                }
                catch (PlatformNotSupportedException) { }
#endif

                if (context.Response.Filter is DeflateStream)
                {
                    context.Response.Filter = null;
                }
                break;
            }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// If supported, adds a runtime compression filter to the response output.
        /// </summary>
        /// <param name="context"></param>
        public static void EnableStreamCompression(HttpContext context)
        {
            // Good request compression summary: http://www.west-wind.com/WebLog/posts/102969.aspx
            switch (ResourceHandler.GetOutputEncoding(context))
            {
            case BuildResultType.Gzip:
            {
                context.Response.AppendHeader(ResourceHandler.HeaderContentEncoding, ResourceHandler.GzipContentEncoding);
                context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress, true);
                break;
            }

            case BuildResultType.Deflate:
            {
                context.Response.AppendHeader(ResourceHandler.HeaderContentEncoding, ResourceHandler.DeflateContentEncoding);
                context.Response.Filter = new DeflateStream(context.Response.Filter, CompressionMode.Compress, true);
                break;
            }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Writes the infor object to the HttpResult stream
        /// </summary>
        /// <param name="context"></param>
        /// <param name="info"></param>
        /// <param name="isDebug"></param>
        public static void WriteResponse(HttpContext context, IOptimizedResult info, bool isDebug)
        {
            HttpResponse response = context.Response;

            switch (ResourceHandler.GetOutputEncoding(info, context, isDebug))
            {
            case BuildResultType.PrettyPrint:
            {
                response.ContentEncoding = Encoding.UTF8;
                response.Output.Write(info.PrettyPrinted);
                break;
            }

            case BuildResultType.Gzip:
            {
                response.AppendHeader(ResourceHandler.HeaderContentEncoding, ResourceHandler.GzipContentEncoding);
                response.OutputStream.Write(info.Gzipped, 0, info.Gzipped.Length);
                break;
            }

            case BuildResultType.Deflate:
            {
                response.AppendHeader(ResourceHandler.HeaderContentEncoding, ResourceHandler.DeflateContentEncoding);
                response.OutputStream.Write(info.Deflated, 0, info.Deflated.Length);
                break;
            }

            case BuildResultType.Compact:
            default:
            {
                response.ContentEncoding = Encoding.UTF8;
                response.Output.Write(info.Compacted);
                break;
            }
            }
        }