ExtensionMethods.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System.IO;
  2. using System.IO.Compression;
  3. using System.Net;
  4. using System.Text;
  5. namespace FNZCM.ConHost
  6. {
  7. internal static class ExtensionMethods
  8. {
  9. public static void WriteM3U8Header(this StringBuilder me)
  10. {
  11. me.AppendLine("#EXTM3U");
  12. me.AppendLine("#EXTENC: UTF-8");
  13. }
  14. public static void WriteTextUtf8(this HttpListenerContext context, string content, string contentType = Const.TextHtml)
  15. {
  16. var bytes = Encoding.UTF8.GetBytes(content);
  17. context.Response.ContentEncoding = Encoding.UTF8;
  18. context.Response.ContentType = contentType;
  19. if (true == context.Request.Headers["Accept-Encoding"]?.Contains("gzip"))
  20. {
  21. context.Response.AddHeader("Content-Encoding", "gzip");
  22. var memoryStream = new MemoryStream(bytes);
  23. var gZipStream = new GZipStream(context.Response.OutputStream, CompressionMode.Compress, false);
  24. memoryStream.CopyTo(gZipStream);
  25. gZipStream.Flush();
  26. }
  27. else
  28. {
  29. context.Response.OutputStream.Write(bytes);
  30. }
  31. }
  32. }
  33. }