Robin's Blog

记录 积累 学习 成长

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

使用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>
 

注意!! 该异常似乎仅在.Net Framework 1.1 SP1版的系统上出现,低版本的系统无需修改此配置,否则徒添烦恼~ 

posted on 2012-04-25 10:21  Robin99  阅读(414)  评论(0编辑  收藏  举报