我有一个工作控制台应用,它将数据发送到API。但是,只要我启动小提琴手,我就会收到消息:
[Fiddler] ReadResponse()失败:服务器未返回此请求的完整响应。服务器返回257个字节。
Fiddler中显示的第一个标题是: HTTP/1.1 504 Fiddler - Receive Failure
这似乎是由fiddler直接生成的,而不是来自我的API服务器(.NET)。
如果fiddler不会向我显示服务器的原始结果,我如何调试为什么会这样?我认为存在某种类型的HTTP标头错误,它与我的控制台应用程序兼容但与Fiddler不兼容。
我一直在使用gzip压缩请求,所以可能其中一个标头不正确(内容长度),但无法查看原始响应,因此调试此问题非常困难。
答案 0 :(得分:2)
最后,我从@ErikLaw得到了一些帮助:
- 下载DebugView https://docs.microsoft.com/en-us/sysinternals/downloads/debugview
- 在会话列表下的Fiddler黑色QuickExec框中,键入!spew并按Enter键。 Fiddler将开始向DebugView喷出详细的日志记录信息,包括对网络的所有读写操作。
醇>
然后在DebugView中显示有关失败请求的更多信息,这使我找到了我的Web服务器在发送所有内容之前提前关闭连接的根本原因。
归功于Eric。
答案 1 :(得分:1)
如果fiddler不会向我显示服务器的原始结果,我如何调试为什么会这样?
使用Wireshark查看实际的网络流量。 Fiddler很好(很棒),但它不是Wireshark。如果你的流量是HTTPS,你需要跳过一些箍。
Wireshark并不像Fiddler那么容易使用,但功能强大得多。
此外,如果您使用的是Windows,则需要使用计算机的本地网络IP地址(例如192.168.x.y),而不是localhost。请参阅this question。