如果您需要简短的技术性答案,请转到答案的最后一部分。
如果您想了解更多,请阅读所有内容,希望您会喜欢…
我今天也解决了这个问题,今天我发现的是:
- 以上答案是正确的,因为:
1.1告诉您要添加的标头已经存在,然后应使用适当的属性(例如,索引器)修改其值,而不是尝试再次添加。
1.2随时更改的标头
HttpWebRequest,都需要在对象本身上使用适当的属性(如果存在)。
感谢FOR和Jvenema提供的领先指南…
- 但是,我发现的 是,这个难题中缺少的部分 是:
2.1
WebHeaderCollection通常通过
WebRequest.Headers或
WebResponse.Headers 访问该类。
一些常见的标头被认为是受限制的,或者直接由API(例如Content-Type)公开,或者由系统保护,并且无法更改。
受限制的标头是:
Accept
Connection
Content-Length
Content-Type
Date
Expect
Host
If-Modified-Since
Range
Referer
Transfer-Encoding
User-Agent
Proxy-Connection
因此,下次您遇到此异常并且不知道如何解决此异常时,请记住,存在一些受限制的标头,而解决方案是使用
WebRequest/
HttpWebRequest类中的相应属性显式修改其值。
编辑:(有用,来自评论,来自用户Kaido的评论)
解决方案是
WebHeaderCollection.IsRestricted(key)在调用add之前检查标头是否已存在或是否受到限制()



