5.25设置自动 Host 标头

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

Host 标头是 HTTP/1.1 协议中的一个必需标头。Host 标头用于指定请求的目标服务器的主机名和端口号,确保服务器能正确区分同一 IP 地址上的不同域名并进行相应处理。框架提供了简便的方法进行设置:

HTTP 声明式请求通过 AutoSetHostHeaderAttribute 特性来设置自动 Host 标头。相应的 HTTP 声明式提取器实现为 AutoSetHostHeaderDeclarativeExtractor 类型,该类型负责解析 AutoSetHostHeaderAttribute 特性并构建 HttpRequestBuilder 实例所需的自动 Host 标头配置。

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

启用后,发送 HTTP 远程请求时会自动添加 Host: furion.net 标头。

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

  • 构造函数

    • new():作用于方法或接口,设置自动 Host 标头。
    • new(enabled):作用于方法或接口,设置是否设置自动 Host 标头。
  • 属性

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