支持GZIP、DEFLATE压缩

/// <summary>
/// Gzip 压缩
/// </summary>
public sealed class CompressionFilter : IResultFilter
{ public void OnResultExecuted(ResultExecutedContext filterContext)
{ } public void OnResultExecuting(ResultExecutingContext filterContext)
{
string acceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"];
if (!String.IsNullOrEmpty(acceptEncoding))
{
acceptEncoding = acceptEncoding.ToUpperInvariant();
HttpResponseBase response = filterContext.HttpContext.Response;
if (acceptEncoding.Contains("GZIP"))
{
response.AppendHeader("Content-encoding", "gzip");
response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
}
else if (acceptEncoding.Contains("DEFLATE"))
{
response.AppendHeader("Content-encoding", "deflate");
response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
}
}
}
}

最新文章

  1. Selenium2+python自动化12-操作元素(键盘和鼠标事件)
  2. hdu 1240:Asteroids!(三维BFS搜索)
  3. 【转载】MFC 程序入口和执行流程
  4. Postgres-XL介绍
  5. java 集合4(迭代器)
  6. java的nio之:java的nio系列教程之pipe
  7. Js冒泡事件和捕获事件
  8. LayoutInflater.inflate() 参数研究
  9. Nape 获取碰撞点加特效
  10. 详解HTTPS加速原理
  11. win 7 系统ie浏览器升级11版本后,f12功能不可用的问题
  12. python的面向对象和面向过程
  13. 部署Openfire3.9.3源码部署
  14. 1.Docker简介【Docker每天5分钟】
  15. puppet一个完整的实例
  16. 【mmall】递归查询子节点并排重
  17. mui 下拉刷新和上拉加载
  18. js和java的参数传递方式实际都是一样的,都是按值传递
  19. Redis之hiredis API (String)
  20. c++之旅:操作符重载

热门文章

  1. Redis与python
  2. [探究] 用舞蹈链(DLX)解决一类数独问题
  3. WIFI Portal登录
  4. 探索 ASP.Net Core 3.0系列五:引入IHostLifetime并弄清Generic Host启动交互
  5. Azure DevOps Server(TFS) 客户端分析
  6. PHP 中的关于 trait 的简单
  7. yii2.0的学习之旅(一)
  8. C# 多线程处理List数据
  9. Lucene BooleanQuery相关算法
  10. 【设计模式】Singleton