Exemplo n.º 1
0
    private static MemoryStream CompressResponse(Stream responseStream, HttpApplication app, string key)
    {
        MemoryStream memoryStream = new MemoryStream();

        CompressionModule.StreamCopy(responseStream, memoryStream);
        responseStream.Dispose();
        byte[] array = memoryStream.ToArray();
        memoryStream.Dispose();
        MemoryStream memoryStream2 = new MemoryStream();
        Stream       stream        = null;

        if (CompressionModule.IsEncodingAccepted("deflate"))
        {
            stream = new DeflateStream(memoryStream2, CompressionMode.Compress);
            app.Application.Add(key + "enc", "deflate");
        }
        else if (CompressionModule.IsEncodingAccepted("gzip"))
        {
            stream = new GZipStream(memoryStream2, CompressionMode.Compress);
            app.Application.Add(key + "enc", "deflate");
        }
        stream.Write(array, 0, array.Length);
        stream.Dispose();
        return(memoryStream2);
    }