using System.IO; using System.IO.Compression; using System.Net; using System.Text; namespace FNZCM.ConHost { internal static class ExtensionMethods { public static void WriteM3U8Header(this StringBuilder me) { me.AppendLine("#EXTM3U"); me.AppendLine("#EXTENC: UTF-8"); } public static void WriteTextUtf8(this HttpListenerContext context, string content, string contentType = Const.TextHtml) { var bytes = Encoding.UTF8.GetBytes(content); context.Response.ContentEncoding = Encoding.UTF8; context.Response.ContentType = contentType; if (true == context.Request.Headers["Accept-Encoding"]?.Contains("gzip")) { context.Response.AddHeader("Content-Encoding", "gzip"); var memoryStream = new MemoryStream(bytes); var gZipStream = new GZipStream(context.Response.OutputStream, CompressionMode.Compress, false); memoryStream.CopyTo(gZipStream); gZipStream.Flush(); } else { context.Response.OutputStream.Write(bytes); } } } }