public static void SendHttpResponse(HttpContext context, string contentToSend) { CompressionSupport compressionSupport = context.GetCompressionSupport(); string acceptEncoding = context.Request.Headers["Accept-Encoding"]; if (compressionSupport != CompressionSupport.None) { if (context.Response.Headers.AllKeys.FirstOrDefault(key => key.Equals(HttpExtensions.ResponseCompressionHeaderKey)) == null) { context.AddCompressionHeaders(compressionSupport); } System.IO.MemoryStream stream = null; using (stream = new System.IO.MemoryStream()) { byte[] content = System.Text.Encoding.UTF8.GetBytes(contentToSend); if (compressionSupport == CompressionSupport.Deflate) { using (System.IO.Compression.DeflateStream zip = new System.IO.Compression.DeflateStream(stream, System.IO.Compression.CompressionMode.Compress, false)) { zip.Write(content, 0, content.Length); } } else if (compressionSupport == CompressionSupport.GZip) { using (System.IO.Compression.GZipStream zip = new System.IO.Compression.GZipStream(stream, System.IO.Compression.CompressionMode.Compress, false)) { zip.Write(content, 0, content.Length); } } } context.Response.BinaryWrite(stream.ToByteArray()); } else { context.Response.Write(contentToSend); } context.Response.Flush(); }
public static void AddCompressionHeaders(this HttpContext context) { CompressionSupport compressionSupport = context.GetCompressionSupport(); context.AddCompressionHeaders(compressionSupport); }
public CompressionFilter(HttpContext context) : this(context, context.GetCompressionSupport()) { }
public static void SendHttpResponse(HttpContext context, string contentToSend) { CompressionSupport compressionSupport = context.GetCompressionSupport(); string acceptEncoding = context.Request.Headers["Accept-Encoding"]; if (compressionSupport != CompressionSupport.None) { if (context.Response.Headers.AllKeys.FirstOrDefault(key=>key.Equals(HttpExtensions.ResponseCompressionHeaderKey)) == null) context.AddCompressionHeaders(compressionSupport); System.IO.MemoryStream stream = null; using (stream = new System.IO.MemoryStream()) { byte[] content = System.Text.Encoding.UTF8.GetBytes(contentToSend); if (compressionSupport == CompressionSupport.Deflate) { using (System.IO.Compression.DeflateStream zip = new System.IO.Compression.DeflateStream(stream, System.IO.Compression.CompressionMode.Compress, false)) { zip.Write(content, 0, content.Length); } } else if (compressionSupport == CompressionSupport.GZip) { using (System.IO.Compression.GZipStream zip = new System.IO.Compression.GZipStream(stream, System.IO.Compression.CompressionMode.Compress, false)) { zip.Write(content, 0, content.Length); } } } context.Response.BinaryWrite(stream.ToByteArray()); } else { context.Response.Write(contentToSend); } context.Response.Flush(); }