为什么Fiddler返回" Fiddler] ReadResponse()失败:服务器没有为此请求返回完整的响应。"有效请求?

时间:2018-01-18 11:53:28

标签: http fiddler

我有一个工作控制台应用,它将数据发送到API。但是,只要我启动小提琴手,我就会收到消息:

  

[Fiddler] ReadResponse()失败:服务器未返回此请求的完整响应。服务器返回257个字节。

Fiddler中显示的第一个标题是: HTTP/1.1 504 Fiddler - Receive Failure  这似乎是由fiddler直接生成的,而不是来自我的API服务器(.NET)。

如果fiddler不会向我显示服务器的原始结果,我如何调试为什么会这样?我认为存在某种类型的HTTP标头错误,它与我的控制台应用程序兼容但与Fiddler不兼容。

我一直在使用gzip压缩请求,所以可能其中一个标头不正确(内容长度),但无法查看原始响应,因此调试此问题非常困难。

2 个答案:

答案 0 :(得分:2)

最后,我从@ErikLaw得到了一些帮助:

  
      
  1. 下载DebugView https://docs.microsoft.com/en-us/sysinternals/downloads/debugview
  2.   
  3. 在会话列表下的Fiddler黑色QuickExec框中,键入!spew并按Enter键。 Fiddler将开始向DebugView喷出详细的日志记录信息,包括对网络的所有读写操作。
  4.   

然后在DebugView中显示有关失败请求的更多信息,这使我找到了我的Web服务器在发送所有内容之前提前关闭连接的根本原因。

归功于Eric。

答案 1 :(得分:1)

  

如果fiddler不会向我显示服务器的原始结果,我如何调试为什么会这样?

使用Wireshark查看实际的网络流量。 Fiddler很好(很棒),但它不是Wireshark。如果你的流量是HTTPS,你需要跳过一些箍。

Wireshark并不像Fiddler那么容易使用,但功能强大得多。

此外,如果您使用的是Windows,则需要使用计算机的本地网络IP地址(例如192.168.x.y),而不是localhost。请参阅this question