我知道这篇文章可能看起来像重复但我已经尝试了互联网上的每种解决方法,我仍然不知道如何修复它。
我正在尝试从具有登录系统的WEB SERVICE获取xml文件。我已成功设法登录并获取xml文件但是,我注意到如果只有Fiddler4打开我就能做到这一点。如果我关闭fiddler它只是说“服务器提交了协议违规.Section = ResponseStatusLine”。
Fiddler的响应没有Headers和这个StatusMessage:
This buggy server did not return headers.
我已尝试将此添加到我的app.config
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing ="true"/>
</settings>
根本不起作用。
尝试添加以下内容:
request.ServicePoint.Expect100Continue = false;
ServicePointManager.Expect100Continue = false;
ServicePointManager. MaxServicePointIdleTime = 2000;
尝试过这个并在我的请求之前调用该方法。 link to solution
错误响应的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?
小提琴手究竟落后了什么?我怎样才能实现这一目标?我一直试图解决这个问题2天,似乎没有任何工作。我的整个项目已经准备好发布了,但是这个令人烦恼的问题已经破坏了它。
谢谢。
答案 0 :(得分:-1)
我修好了!!
正如我在帖子中所说,当小提琴手在我的要求下工作时。所以,我认为我需要使用提琴手而不使用它(原因,取决于外部软件而不是用户友好),我提出了一个想法。
我修复了我的问题,将一个便携式fiddler(fiddler.exe和3个主dll)嵌入到我的项目中,然后在一个新的Windows窗体上调用它并隐藏它而不进行处理。所以,fiddler将在后台运行,并为我修复我的破坏的http请求。 当我的应用程序关闭Application.ApplicationExit事件时,我杀死了Fiddler。结论,我现在不依赖于提琴手,而是将其用作资源。
现在一切正常。