有人知道吗,是否有可能在IE中压缩我的传出http数据? 我对服务器执行ajax请求,并希望减少流量以加快我的应用程序。
谢谢, 叶戈尔
答案 0 :(得分:2)
以下是创建压缩过滤器属性的常用方法:
public class CompressFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
HttpRequestBase request = actionContext.HttpContext.Request;
string acceptEncoding = request.Headers["Accept-Encoding"];
if (!string.IsNullOrWhiteSpace(acceptEncoding))
{
acceptEncoding = acceptEncoding.ToLowerInvariant();
HttpResponseBase response = actionContext.HttpContext.Response;
if (acceptEncoding.Contains("gzip"))
{
response.AddHeader("Content-encoding", "gzip");
response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
}
else if (acceptEncoding.Contains("deflate"))
{
response.AddHeader("Content-encoding", "deflate");
response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
}
}
}
}
现在,您可以使用[CompressFilter]
属性修饰控制器。它将为支持它的浏览器的响应添加一个压缩标头,IIS将接收它。如果您已打开动态压缩,IIS将输出压缩响应。