在c#中使用httpwebrequest,webrequest类的时候,如果尝试对http请求的header进行设置,不管是使用set方法还是add方法,如我们设置header中的host属性:
都会报错:"必须使用适当的属性或方法修改此标头"。
//
// 摘要:
// 获取或设置要在 HTTP 请求中独立于请求 URI 使用的 Host 标头值。
//
// 返回结果:
// HTTP 请求中的 Host 标头值。
//
// 异常:
// System.ArgumentNullException:
// 不能将主机标头设置为 null。
//
// System.ArgumentException:
// 不能将主机标头设置为无效值。
//
// System.InvalidOperationException:
// 在已经开始发送 System.Net.HttpWebRequest 之后,不能设置主机标头。
public string Host { get; set; }
原因:c#不允许您使用set和add方法来设置此类标头 c#已经提供了此类标头的专用属性,供您修改和设置此标头时使用。 header的名称和对应的属性设置方法如下: Header | 设置方 | Accept | 由 Accept 属性设置。 | Connection | 由 Connection 属性和 KeepAlive 属性设置。 | Content-Length | 由 ContentLength 属性设置。 | Content-Type | 由 ContentType 属性设置。 | Expect | 由 Expect 属性设置。 | Date | 由 Date 属性设置。 | 宿主 | 由 Host 属性设置。 | If-Modified-Since | 由 IfModifiedSince 属性设置。 | 范围 | 由 AddRange 方法设置。 | Referer | 由 Referer 属性设置。 | Transfer-Encoding | 由 TransferEncoding 属性设置(SendChunked 属性必须为 true)。 | User-Agent | 由 UserAgent 属性设置。 |
|