5.24启用标准请求标头

创建于 2026 年 8 月 17 日约 2 分钟读完

为了提升应用通过 HTTP 客户端发送网络请求的兼容性并避免被 WAFWeb 应用防火墙)拦截,框架提供了一键式配置方法,方便快速统一设置标准的请求头部。

HTTP 声明式请求通过 StandardRequestHeadersAttribute 特性来启用标准请求标头。相应的 HTTP 声明式提取器实现为 StandardRequestHeadersDeclarativeExtractor 类型,该类型负责解析 StandardRequestHeadersAttribute 特性并构建 HttpRequestBuilder 实例所需的配置。

cs
// 在接口定义上应用,影响所有方法[StandardRequestHeaders]public interface IHttpService : IHttpDeclarative{    // 在方法上应用    [StandardRequestHeaders]    [Get("https://furion.net/")]    Task<string> GetStringAsync();    [StandardRequestHeaders(false)]   // 关闭标准请求标头    [Get("https://furion.net/")]    Task<string> GetStringAsync();}

此外,除了为单个请求启用标准标头配置,还可以全局注册以在 HttpClient 中启用:

cs
// 为默认客户端启用services.AddHttpClient(string.Empty, client =>{    client.UseStandardRequestHeaders();});services.AddHttpRemote();

启用标准请求标头后,请求将自动添加以下头部:

  • Acceptapplication/jsontext/plain;q=0.9*/*;q=0.8(明确的媒体类型优先级,避免被 WAF 拦截)
  • Connection:启用持久连接(Keep-Alive),减少 TCP 连接建立和关闭的开销

StandardRequestHeadersAttribute 包含以下构造函数和属性:

  • 构造函数

    • new():作用于方法或接口,启用标准请求标头。
    • new(enabled):作用于方法或接口,设置是否启用标准请求标头。
  • 属性

    • Enabled:是否启用(bool 类型),默认值为 true(启用)。