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