private void Application_BeginRequest(object sender, EventArgs e)
        {
            var context = HttpContext.Current;
            var request = context.Request;
            var response = context.Response;
            ResponseCompressionType compressionType = this.GetCompressionMode(request);

            if (compressionType != ResponseCompressionType.None)
            {
                response.AppendHeader("Content-Encoding", compressionType.ToString().ToLower());
                if (compressionType == ResponseCompressionType.GZip)
                {
                    response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
                }
                else
                {
                    response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
                }
            }
        }

        private ResponseCompressionType GetCompressionMode(HttpRequest request)
        {
            string acceptEncoding = request.Headers["Accept-Encoding"];
            if (string.IsNullOrEmpty(acceptEncoding))
            {
                return ResponseCompressionType.None;
            }
            acceptEncoding = acceptEncoding.ToUpperInvariant();
            if (acceptEncoding.Contains("GZIP"))
            {
                return ResponseCompressionType.GZip;
            }
            else if (acceptEncoding.Contains("DEFLATE"))
            {
                return ResponseCompressionType.Deflate;
            }
            else
            {
                return ResponseCompressionType.None;
            }
        }
        private enum ResponseCompressionType { None, GZip, Deflate }

相关文章:

  • 2022-01-01
  • 2021-09-27
  • 2022-12-23
  • 2022-02-11
  • 2021-11-26
  • 2021-09-27
  • 2021-10-09
猜你喜欢
  • 2021-09-27
  • 2022-12-23
  • 2021-08-05
  • 2021-07-01
  • 2022-12-23
  • 2021-11-12
相关资源
相似解决方案