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