服务器违反了协议。部分=响应状态行错误。

121

我创建了一个程序,试图在网站上发布一个字符串,但我得到了这个错误:

"服务器违反了协议。部分=ResponseStatusLine"

出现这个错误是在以下代码行之后:

gResponse = (HttpWebResponse)gRequest.GetResponse(); 

我该如何修复这个异常?

18个回答

2
这个问题的可能原因是网络上的Web代理自动发现协议(WPAD)配置。HTTP请求将被透明地发送到一个代理服务器,该代理服务器可以发送一个客户端无法接受或未配置为接受的响应。在对代码进行大幅修改之前,请检查WPAD是否在使用中,特别是如果这个问题突然出现的话。

2

对于我来说,这些解决方案都没有用,所以我不得不使用WebClient而不是HttpWebRequest,然后问题就解决了。

我需要使用CookieContainer,所以我使用了Pavel Savara在这个帖子中发布的解决方案 - 使用CookieContainer与WebClient类

只需从此行中删除“protected”:

private readonly CookieContainer container = new CookieContainer();


2

我的问题是我使用http调用了https的端点。


1
第一件事情我们尝试禁用IIS的动态内容压缩,这解决了错误,但是错误并不是由服务器引起的,只有一个客户端受到了影响。
在客户端上,我们卸载了VPN客户端,重置了Internet设置,然后重新安装了VPN客户端。错误也可能是由以前的带有防火墙的杀毒软件引起的。然后我们重新启用了动态内容压缩,现在它像以前一样正常工作。
错误出现在连接到Web服务的自定义应用程序和TFS中。

0
在我的情况下,IIS 没有访问相关 ASPX 路径所需的权限。
我给了 IIS 用户访问相关目录的权限,一切都很好。

0

查看您的代码,确定是否设置了一些带有NULL或空值的头文件。


0

0

我在我的php JSON/REST服务中开始遇到这个错误

在我添加ob_start("ob_gzhandler")到最常访问的GET php脚本后,我开始在相对较少的POST上传中遇到错误

我可以使用ob_start(),一切正常。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接