using Microsoft.AspNetCore.Http; using System.Text; using System.Web; namespace HuanMeng.DotNetCore.Extensions { /// /// HttpContext扩展方法 /// public static class HttpContextExtensions { /// /// 动态消息的头部名称 /// public const string DynamicMessageHeaderName = "X-Dynamic-Message"; /// /// 设置动态消息 /// /// HTTP上下文 /// 消息内容 public static void SetDynamicMessage(this HttpContext httpContext, string message) { if (string.IsNullOrEmpty(message)) return; // URL编码消息内容,防止特殊字符导致问题 string encodedMessage = HttpUtility.UrlEncode(message); httpContext.Response.Headers[DynamicMessageHeaderName] = encodedMessage; } /// /// 获取动态消息 /// /// HTTP上下文 /// 消息内容,如果不存在则返回空字符串 public static string GetDynamicMessage(this HttpContext httpContext) { if (httpContext.Response.Headers.TryGetValue(DynamicMessageHeaderName, out var value)) { // URL解码消息内容 return HttpUtility.UrlDecode(value); } return string.Empty; } } }