如何在HttpWebRequest里设置Host标头

2025-06-20 08:25:10
推荐回答(1个)
回答1:

HttpWebRequest.Host 属性
.NET Framework 4.6 and 4.5
其他版本

获取或设置要在 HTTP 请求中独立于请求 URI 使用的 Host 标头值。

命名空间: System.Net
程序集: System(在 System.dll 中)

语法

C#
C++
F#
VB
public string Host { get; set; }

属性值
类型:System.String
HTTP 请求中的 Host 标头值。

异常

异常
条件

ArgumentNullException
不能将主机标头设置为 null。

ArgumentException
不能将主机标头设置为无效值。

InvalidOperationException
在已经开始发送 HttpWebRequest 之后,不能设置主机标头。

备注

Host 属性可用于设置要在 HTTP 请求中独立于请求 URI 使用的 Host 标头值。 Host 属性可以由一个主机名和可选的端口号组成。 不包含端口信息的 Host 标头表示所请求服务的默认端口(例如,对于 HTTP URL 为 端口 80)。
用来指定主机和端口的格式必须遵照由 IETF 发布的 RFC2616 的 14.23 小节中的规则。 符合指定端口 8080 的这些要求的示例是 Host 属性的以下值:
www.contoso.com:8080
使用 Host 属性来显式指定自定义的主机头值也会影响缓存的区域、cookie 和身份验证。 当应用程序向特定的 URI 前缀提供凭据时,该应用程序需要确定使用包含主机标头值的 URI,而不是 URI 中的目标服务器。 该缓存资源时使用的键使用主机标头值,而不是请求 URI。 Cookie 存储在 CookieContainer 中,并按服务器域名逻辑分组。 如果应用程序指定一个主机标头,则将此值用作域。
如果未设置 Host 属性,则在 HTTP 请求中使用的主机标头值基于请求 URI。

版本信息

.NET Framework
受以下版本支持:4.5、4

.NET Framework Client Profile
受以下版本支持:4

平台

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(不支持服务器核心角色), Windows Server 2008 R2(支持带 SP1 或更高版本的服务器核心角色;不支持 Itanium)