服务器提交了协议冲突. Section=ResponseStatusLine的解决办法
程序部署到服务器后,访问对方提供的接口页面后,返回错误“服务器提交了协议冲突. Section=ResponseStatusLine”,访问代码如下:
WebClient webClient = new WebClient();
webClient.Credentials = CredentialCache.DefaultCredentials;
Encoding encoding = Encoding.GetEncoding("utf-8"); // 如果是乱码就改成 utf-8 / GB2312
Byte[] responseData = null;
try
{
responseData = webClient.DownloadData(pageUrl);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
根据错误在百度查找了一下解决办法,第一种办法是加上UserAgent,添加如下代码,可是没有产生任何作用。
webClient.Headers.Set(System.Net.HttpRequestHeader.UserAgent, " Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3");
第二种办法是在web.config 中添加如下配置:
<configuration>
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
</configuration>
添加后发现返回的结果字符串是一个类似云盾的提示页面,仍然没有解决问题。
最后联系了对方平台的技术人员,将我们这里访问调用的服务器IP加入白名单后,程序即可正常执行。估计是云盾防火墙防御产生的效果。如果大家发现了更好的解决办法请务必留言告诉我,不胜感激!
转载请以链接形式标明本文地址!本文地址:https://www.xb02.com/article/77
上一篇:如何迅速做到细分市场第一,创投女王徐新的成功经验分享
下一篇:林涛的个人说明