c# - Gzip压缩asp.net c#

标签 c# asp.net gzip

我只是想调整我的方法,以便在浏览器接受 gzip 时传输压缩数据。 else 部分已经可以工作了。我只想调整 if 部分。继承人的代码:

private void writeBytes()
{
    var response = this.context.Response;

    if (canGzip)
    {
        response.AppendHeader("Content-Encoding", "gzip");
        //COMPRESS WITH GZipStream
    }
    else
    {
        response.AppendHeader("Content-Length", this.responseBytes.Length.ToString());
        response.ContentType = this.isScript ? "text/javascript" : "text/css";
        response.AppendHeader("Content-Encoding", "utf-8");
        response.ContentEncoding = Encoding.Unicode;
        response.OutputStream.Write(this.responseBytes, 0, this.responseBytes.Length);
        response.Flush();
    }
}

最佳答案

看起来你想添加 Response.Filter,见下文。

private void writeBytes()
{
    var response = this.context.Response;
    bool canGzip = true;

    if (canGzip)
    {
        Response.Filter = new System.IO.Compression.GZipStream(Response.Filter, System.IO.Compression.CompressionMode.Compress);
        Response.AppendHeader("Content-Encoding", "gzip");
    }
    else
    {
        response.AppendHeader("Content-Encoding", "utf-8");
    }

    response.AppendHeader("Content-Length", this.responseBytes.Length.ToString());
    response.ContentType = this.isScript ? "text/javascript" : "text/css";
    response.ContentEncoding = Encoding.Unicode;
    response.OutputStream.Write(this.responseBytes, 0, this.responseBytes.Length);
    response.Flush();
    }

}

关于c# - Gzip压缩asp.net c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10639337/

相关文章:

c# - unity2d 创建一个单侧对撞机

node.js - 在反向代理模式下使用 NGINX 压缩资源

go - 如何在字符串上使用 gzip?

Java顺序解压GZIP流

c# - 彻底检查电子邮件是否存在,NHibernate,LINQ

c# - 我无法在 HTML 生成的 PDF 中呈现图片

C# ASP.Net WebForm 成员资格额外用户详细信息(配置文件)

c# - 多线程/异步请求并等待它们全部完成然后处理结果

asp.net - Javascript 函数未被调用 - ASP.NET 和 UpdatePanel

javascript - html 元素在单选按钮列表中不起作用