C# Winform/Server 提交协议冲突 Section=ResponseStatusLine 的解决,可能是服务器引起的异常

  • Post author:
  • Post category:其他



把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("");

原来问题是出现在服务器上。。



版权声明:本文为songqingwei1988原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。