相关文章推荐
爱看球的伤疤  ·  sockets - How do I ...·  1 年前    · 
腼腆的拖把  ·  Python openCV get ...·  1 年前    · 
爱搭讪的烤土司  ·  React Native Array To ...·  1 年前    · 


你的问题的原因是这样的,ASP.Net 2.0 增强了安全性,对一些有危害的http 头进行了判断,比如url中有空格的情况,以帮助网站提高网络的防御能力。如果你的http头中有一些ASP.NET 认为是有危害的信息,则会返回这个错误。你访问百度没有问题,是因为百度根本就不是asp.net 做的。

这个问题的解决办法是在你的 web.config 中添加如下配置:

<configuration>
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
</configuration>

详细解答请参见 微软在线技术支持的如下回答:

​http://www.velocityreviews.com/forums/t302174-why-do-i-get-quotthe-server-committed-a-protocol-violationquot.html​

服务器提交了协议冲突. Section=ResponseStatusLine,WebClient使用Cookie

自己写了个程序,利用post获取某网站的信息,当进行到httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse()时会提示“服务器提交了协议冲突. Section=ResponseStatusLine”(有时出有时不出,好像跟电脑或网络有关) 百度了下,几个人都说要改webclient等来提交请求,但我仍想利用httpWebRequest.GetResponse(),不想改其他代码了.关于“”错误,百度上很多人都是说使用下面的代码解决,但是我用了都不成功,不知道是为什么。我估计不是好的解决方法。WinForm下的app.con. Read More