Analytics

2016年9月7日 星期三

[HttpContext]使用 gzip/deflate壓縮responsed資料 (Use gzip / deflate compression response data)


問題
使用 gzip/deflate壓縮responsed資料



解決方法
Code
public static HttpContext compressResponsed(HttpContext context)
{
    string acceptEncoding = context.Request.Headers["Accept-Encoding"].ToString().ToUpperInvariant();
    if (!String.IsNullOrEmpty(acceptEncoding))
    {
        if (acceptEncoding.Contains("GZIP"))
        {
            context.Response.AppendHeader("Content-encoding", "gzip");
            context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);
        }
        else if (acceptEncoding.Contains("DEFLATE"))
        {
            context.Response.AppendHeader("Content-encoding", "deflate");
            context.Response.Filter = new DeflateStream(context.Response.Filter, CompressionMode.Compress);
        }
    }
    return context;
}
使用方式
public void ProcessRequest(HttpContext context)
{
 context = Utlity.compressResponsed(context);
 // context.Response.Write(xxx)
}

沒有留言:

熱門文章