ServerProtocolViolation错误

时间:2010-01-14 17:16:16

标签: c# .net

我正在使用以下代码访问服务器并遇到ServerProtocolViolation错误:

// Prepare the webpage
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url + queryString);

// execute the request
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

有谁知道如何解决这类错误?

2 个答案:

答案 0 :(得分:3)

此错误表示您发送请求的网络服务器不符合HTTP标准。

除了修复服务器或重写HttpWebRequest更加慷慨之外,你无能为力。

您要求的是什么网址,以及该例外的文字是什么?

编辑:如果您在Fiddler中请求网址,则会看到服务器未返回任何标头。您应该联系服务器的所有者并投诉。

作为一种解决方法,如果您在发送请求时运行Fiddler,Fiddler将修复响应并允许HttpWebResponse解析它。

答案 1 :(得分:0)

快速说明我遇到的另一个原因:

如果您将请求配置为使用代理服务器(即通过HttpWebRequest.Proxy property),并且使用了错误的代理端口,则可能还有机会看到该错误。

在我的情况下,我将http://127.0.0.1/配置为代理,但实际代理服务器在http://127.0.0.1:808/上运行(即端口“808”而不是“80”)。

如果是这种情况,请尝试不使用代理,或者配置正确的代理端口。