本文描述c#中出现”必须使用适当的属性或方法修改此标头”错误的原因和解决办法。
在c#中使用httpwebrequest,webrequest类的时候,如果尝试对http请求的header进行设置,不管是使用set方法还是add方法,如我们设置header中的referer属性:
request.Headers.Set("Referer", "itjsxx.com");
request.Headers.Add(“Referer”, “itjsxx.com”);
都会报错:”必须使用适当的属性或方法修改此标头“。
原因: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 属性设置。
根据上表所示,我们修改Referer,只需要
request.Referer = "itjsxx.com";