把Http异步的操作改为同步操作后出现该异常,网上搜了一下,
原因:微软没有容忍不符合RFC 822中的httpHeader必须以CRLF结束的规定的服务器响应所导致
对于原因我是不明觉厉。结果问题恰恰是出现在服务器上,服务器解决方法见最后。
尝试的解决方法:
0.几个人都说要改webclient等来提交请求,没有改的想法
1.有人说把客户端的KeepLive = false 立竿见影 尝试无效,
2.看到这个帖子 http://hi.baidu.com/westfruit/item/79d46811c2bd58463b176e21
新建个App.Conifg
新建方法:鼠标右键点击项目名称,添加–新建项,在弹出的对话框中选择”应用程序配置文件”,文件名称采用默认名称即可。
网上那种直接添加xml配置文件做法不可行。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing= "true " />
</settings>
</system.net>
</configuration>
无效 = = ~
3.度娘靠不住,我去了下谷歌,大同小异,大概得出的方法是以下
_request.KeepAlive = false;
_request.ContentType = "application/JSON";
_request.Referer ="";
_request.UserAgent = "";
_request.CookieContainer = new CookieContainer();
均无效啊 = = 。。。
结果 到最后, 发现是我服务器端出现的问题。。。。。服务器端在写入数据流之前,写入以下代码
OutputStream.WriteLine("HTTP/1.0 200 OK");
OutputStream.WriteLine("Content-Type: text/html");
OutputStream.WriteLine("Connection: close");
OutputStream.WriteLine("");
原来问题是出现在服务器上。。

本文记录了将HTTP异步操作改为同步后出现的异常及其解决过程。异常原因是服务器响应不符合RFC822规定,最终通过调整服务器端响应头解决了问题。

7184

被折叠的 条评论
为什么被折叠?



