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;
}
}
}