C# 服务器违反了协议。Section=ResponseStatusLine(尝试了许多解决方案,但均无效)

C# 服务器违反了协议。Section=ResponseStatusLine(尝试了许多解决方案,但均无效),c#,http,fiddler,C#,Http,Fiddler,我知道这篇文章看起来像是重复的,但我已经尝试了互联网上的每一种解决方法,我仍然不知道如何修复它 我试图从一个具有登录系统的WEB服务中获取一个xml文件。我已经成功地登录并获取了xml文件,但是,我注意到,如果只有Fiddler4打开,我就能够做到这一点。如果我关闭fiddler,它只会说“服务器违反了协议。Section=ResponseStatusLine” Fiddler响应没有标题,此状态消息: This buggy server did not return headers. 我已尝

我知道这篇文章看起来像是重复的,但我已经尝试了互联网上的每一种解决方法,我仍然不知道如何修复它

我试图从一个具有登录系统的WEB服务中获取一个xml文件。我已经成功地登录并获取了xml文件,但是,我注意到,如果只有Fiddler4打开,我就能够做到这一点。如果我关闭fiddler,它只会说“服务器违反了协议。Section=ResponseStatusLine”

Fiddler响应没有标题,此状态消息:

This buggy server did not return headers.
我已尝试将此添加到我的app.config

<system.net>
 <settings>
   <httpWebRequest useUnsafeHeaderParsing ="true"/>
 </settings>
尝试此操作并在我请求之前调用该方法

错误响应的Fiddler日志输出:

Fiddler.Network.ProtocolViolation - [#7] The Server did not return properly-formatted HTTP Headers. Maybe missing altogether (e.g. HTTP/0.9), maybe only \r\r instead of \r\n\r\n?
提琴手到底在后面干什么?我怎样才能做到这一点?我已经试着解决这个问题两天了,但似乎什么都没用。我的整个项目已经准备好发表了,但这个恼人的问题毁了它

谢谢。

我修好了

正如我在我的帖子中所说,当fiddler在我的请求上时,我的请求是有效的。所以,我认为我需要在不使用fiddler的情况下使用fiddler(因为,依赖于一个用户不太友好的外部软件),于是我想出了一个主意

我修复了在我的项目中嵌入一个可移植的fiddler(fiddler.exe和3个主DLL)的问题,然后在一个新的windows窗体上调用它,并将其隐藏起来而不进行处理。因此,fiddler将在后台为我修复损坏的http请求。 当我的应用程序在application.ApplicationExit事件中关闭时,我杀死了Fiddler。最后,我不是依靠fiddler,而是把它当作一种资源

现在一切正常。

我修好了

正如我在我的帖子中所说,当fiddler在我的请求上时,我的请求是有效的。所以,我认为我需要在不使用fiddler的情况下使用fiddler(因为,依赖于一个用户不太友好的外部软件),于是我想出了一个主意

我修复了在我的项目中嵌入一个可移植的fiddler(fiddler.exe和3个主DLL)的问题,然后在一个新的windows窗体上调用它,并将其隐藏起来而不进行处理。因此,fiddler将在后台为我修复损坏的http请求。 当我的应用程序在application.ApplicationExit事件中关闭时,我杀死了Fiddler。最后,我不是依靠fiddler,而是把它当作一种资源


现在一切都好了。

很明显。。。“具有登录系统的我的服务”实际上没有使用格式正确的HTTP进行响应。这意味着“我的服务”被破坏了。当然,您应该询问如何修复它,而不是如何强制客户机读取损坏的HTTP?“我的服务”到底有什么反应?这是怎么一回事?形成响应的代码在哪里?它使用什么框架?@spender“我的服务”指的是我使用的服务,也许我应该在这方面更专业一些。然而,这显然是一个客户端问题。“嗯,很明显…”“我的服务有一个登录系统”实际上没有使用正确格式的HTTP进行响应。这意味着“我的服务”被破坏了“这一部分也很明显,如果你读了整篇文章,“我的服务”是与fiddler4一起工作的。我的问题是“fiddler到底在做什么?我如何才能做到这一点?”正如我在帖子中所说。fiddler更努力地解析响应,并且更宽容w.r.t.格式错误的http。它充当代理,并向客户机重新发出正确的响应,其中包含从头中成功解析的所有信息。实际上,Fiddler正在修复损坏的HTTP。除非您从HTTP后退一步,并使用原始TCP/IP(套接字)发出请求/读取响应,否则您将永远无法自己执行此操作。修复服务器确实是一个更好的主意。否则,您必须接受您的服务器不是HTTP服务器。@spender我的一个朋友轻松地在delphi上编写了相同的项目。我们只是想把项目移交给C#。因此,我的服务器是delphi(实际上也是lazarus)的HTTP服务器,而不是C。我要问为什么?但你的服务器不是HTTP服务器。真正地事实并非如此。菲德勒是这么告诉你的。HttpWebRequest正在安装窃听器。你还需要多少证据?很明显。。。“具有登录系统的我的服务”实际上没有使用格式正确的HTTP进行响应。这意味着“我的服务”被破坏了。当然,您应该询问如何修复它,而不是如何强制客户机读取损坏的HTTP?“我的服务”到底有什么反应?这是怎么一回事?形成响应的代码在哪里?它使用什么框架?@spender“我的服务”指的是我使用的服务,也许我应该在这方面更专业一些。然而,这显然是一个客户端问题。“嗯,很明显…”“我的服务有一个登录系统”实际上没有使用正确格式的HTTP进行响应。这意味着“我的服务”被破坏了“这一部分也很明显,如果你读了整篇文章,“我的服务”是与fiddler4一起工作的。我的问题是“fiddler到底在做什么?我如何才能做到这一点?”正如我在帖子中所说。fiddler更努力地解析响应,并且更宽容w.r.t.格式错误的http。它充当代理,并向客户机重新发出正确的响应,其中包含从头中成功解析的所有信息。实际上,Fiddler正在修复损坏的HTTP。除非您从HTTP后退一步,并使用原始TCP/IP(套接字)发出请求/读取响应,否则您将永远无法自己执行此操作。修复服务器确实是一个更好的主意。否则,您必须接受您的服务器不是HTTP服务器。@spender我的一个朋友轻松地在delphi上编写了相同的项目。我们只是想把项目移交给C#。因此,我的服务器是delphi(实际上也是lazarus)的HTTP服务器,而不是C。我要问为什么?但你的服务器不是HTTP服务器。真正地事实并非如此。菲德勒是这么告诉你的。H
Fiddler.Network.ProtocolViolation - [#7] The Server did not return properly-formatted HTTP Headers. Maybe missing altogether (e.g. HTTP/0.9), maybe only \r\r instead of \r\n\r\n?