我有以下代码来进行调用,然后返回 xml:
private string Send(string url)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}
}
}
catch (WebException ex)
{
var _status = ex.Status.ToString();
if (ex.Status == WebExceptionStatus.ProtocolError)
{
_status = ((HttpWebResponse)ex.Response).StatusCode.ToString();
}
Trace.WriteLine(_status.ToString());
}
return "error";
}
大多数时候(并非总是)我得到
System.Net.WebException:服务器违反了协议。
System.Net.HttpWebRequest.GetResponse() 处的部分=ResponseStatusLine
抛出异常。
我已将其直接添加到我的 App.config 中<configuration>
部分:
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true"/>
</settings>
</system.net>
但我仍然收到错误。
Set
request.KeepAlive = false;
http://www.webmonkeys.org.uk/2012/09/c-the-server-commited-a-protocol-violation-sectionresponsestatusline/#comment-60 http://www.webmonkeys.org.uk/2012/09/c-the-server-committed-a-protocol-violation-sectionresponsestatusline/#comment-60
另外,如果您尝试解决此问题,则粘贴的 useUnsafeHeaderParsing 配置值将其设置为 false,而您应该将其设置为 true。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)