mvc开启gzip压缩示例分享

时间:2022-05-03 08:34:29 


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");
}
}
}
}


标签:c#,gzip,压缩
0
投稿

猜你喜欢

  • IntelliJ IDEA 2020.2正式发布,两点多多总能助你提效

    2023-08-30 18:15:18
  • 详解Spring boot上配置与使用mybatis plus

    2023-02-27 08:53:11
  • Effective Java (异常处理)

    2022-09-24 12:17:29
  • IDEA实现添加 前进后退 到工具栏的操作

    2021-08-30 21:34:48
  • C#连接ODBC数据源的方法

    2023-04-20 07:30:33
  • 学习Java的Date、Calendar日期操作

    2023-09-04 22:26:38
  • Java深入讲解instanceof关键字的使用

    2023-02-27 13:05:05
  • java -jar设置添加启动参数实现方法

    2022-04-26 21:05:37
  • 深入讲解基于JDK的动态代理机制

    2022-07-19 07:13:32
  • java中使用zxing批量生成二维码立牌

    2021-12-31 04:31:03
  • JAVA8之函数式编程Function接口用法

    2022-01-04 04:03:04
  • maven <repositories>标签和<pluginRepositories>标签的使用

    2022-09-26 01:06:33
  • Java 实现FTP服务实例详解

    2023-06-18 10:45:25
  • Java带返回值的方法的定义和调用详解

    2022-10-05 21:01:09
  • c# 实现模糊PID控制算法

    2022-12-06 13:06:22
  • Java由浅入深带你精通继承super

    2023-11-23 02:34:28
  • mybatis注解与xml常用语句汇总

    2022-05-17 18:39:47
  • Java工具类DateUtils实例详解

    2022-08-22 00:40:35
  • Java重点梳理类与对象核心原理

    2023-04-08 06:15:41
  • Java 容器类源码详解 Set

    2022-03-21 18:08:40
  • asp之家 软件编程 m.aspxhome.com