手机
当前位置:查字典教程网 >编程开发 >C#教程 >mvc开启gzip压缩示例分享
mvc开启gzip压缩示例分享
摘要:复制代码代码如下:usingSystem.IO;usingSystem.IO.Compression;usingSystem.Web;usi...

复制代码 代码如下:

using System.IO;

using System.IO.Compression;

using System.Web;

using System.Web.Mvc;

public class CompressAttribute : ActionFilterAttribute

{

public override void OnResultExecuted(ResultExecutedContext filterContext)

{

//如果出现错误,则不进行压缩,否则页面会出现乱码,而不是报错的黄页

if (filterContext.Exception != null)

return;

HttpResponseBase Response = filterContext.HttpContext.Response as HttpResponseBase;

//判断IIS或者其他承载设备是是否启用了GZip或DeflateStream

if (Response.Filter is GZipStream || Response.Filter is DeflateStream)

return;

//开始进入压缩环节

string AcceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"];

if (!string.IsNullOrEmpty(AcceptEncoding) && (AcceptEncoding.Contains("gzip") || AcceptEncoding.Contains("deflate")))

{

if (AcceptEncoding.Contains("gzip"))

{

Response.Filter = new GZipStream(Response.Filter, CompressionMode.Compress);

Response.Headers.Remove("Content-Encoding");

Response.AppendHeader("Content-Encoding", "gzip");

}

else

{

Response.Filter = new DeflateStream(Response.Filter, CompressionMode.Compress);

Response.Headers.Remove("Content-Encoding");

Response.AppendHeader("Content-Encoding", "deflate");

}

}

}

}

【mvc开启gzip压缩示例分享】相关文章:

c# 以二进制读取文本文件

C# zxing二维码写入的实例代码

C#拼接SQL语句 用ROW_NUMBER实现的高效分页排序

C#常用正则大全分享

c# 引用类型与值类型的区别详解

c# 值类型实例构造器

使用C#实现RTP数据包传输 参照RFC3550

Question:基于C#连续赋值的面试题(解答)

c# 匿名方法的小例子

c#(Socket)异步套接字代码示例

精品推荐
分类导航