使用WebRequest遇到的"The server committed an HTTP protocol violation"错误
今天使用WebRequest访问WAP一些网站,程序在接收Response的时候抛出异常:
The server committed an HTTP protocol violation
原因是HTTP v1.1协议规定headers里的key, 不能含有空格.但某些WebServer的实现没有完全遵循这一点,导致了.Net的HttpWebResponse类在分析返回的时候报告上述错误.
解决的办法是修改配置文件:
1.对于web项目,修改web.config
2.对于winForm程序,修改%application_name%.exe.config文件:
<configuration>
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
</configuration>
<system.net>
</system.net>
</configuration>
注意!! 该异常似乎仅在.Net Framework 1.1 SP1版的系统上出现,低版本的系统无需修改此配置,否则徒添烦恼~