【问题标题】:Any way to get around the browser http timeout during debugging?有什么办法可以在调试期间绕过浏览器 http 超时?
【发布时间】:2011-09-14 04:08:21
【问题描述】:

我目前正在从事 Django 开发。有一个问题,这不是一个真正的问题,但很烦人。通常,当我尝试通过设置一些断点来调试我的 Django 应用程序时,我会在服务器端收到此错误:

错误:[Errno 32] 管道损坏

在阅读了另一篇帖子Django + WebKit = Broken pipe 后,我了解到这与服务器无关,而是使用的客户端浏览器。基本上,发生的事情是浏览器有一个http请求超时。如果在超时时间内没有收到响应,它将关闭与服务器的连接。

我发现这个超时并不是真正需要的,在调试过程中确实会让人头疼。有什么办法可以解除此超时或为我的浏览器(Chrome)增加它?或者可能是没有此限制的替代浏览器?

注意:虽然我使用的是 Django 并且已经提到过,但这不是一个与 Django 相关的问题。这更像是一个关于如何让我的调试过程更有效的问题。

【问题讨论】:

  • 尝试在客户端和服务器之间使用 Fiddler 运行,同时关闭流模式(默认)。 Fiddler 将使连接保持活动的时间比您的浏览器可能要长得多。
  • @ericlaw-msft,感谢您的指点。我喜欢在客户端和服务器之间有一个中间人来保持连接更长时间的想法。让我试一试 Fiddler,看看它对我的目的有多好。干杯。
  • @ericlaw-msft,我刚刚发现我不能使用 Fiddler,因为它只支持 Windows,我的开发环境是 Linux :(
  • 如果你有任何 Windows 机器,你可以将你的 Linux 机器的代理设置指向 Fiddler。如果您根本没有 Windows 框,那么在 Java 上运行的名为 Charles 的程序可能适合您。

标签: debugging http browser


【解决方案1】:

我更喜欢使用 linux/unix curl 命令来调试 Web 应用程序。这是一种很好的方法,特别是如果您想专注于某些特定请求,例如:POST 不适用于某些参数集,或者 cookie 未按预期设置。

当然,一开始可能需要一些时间来了解如何使用它,但随后,您将完全控制每一个请求:超时、cookie、标头等。这非常有用,因为您可以确定您想要发送的内容确实已发送(网络浏览器不会添加额外的数据)。

【讨论】:

  • 你说得对,curl 也是一种选择。我经常使用它来调试 Web 服务,在这种情况下,我不需要关心客户端演示。但在这篇文章中,我真正需要的是一种方法来查看我的用户会看到什么,同时不会收到 http 超时错误。 curl 工作在较低级别(请求和响应级别,而不是表示级别),所以它不适合我的目的。
猜你喜欢
  • 1970-01-01
  • 2015-10-24
  • 2014-12-08
  • 1970-01-01
  • 2011-07-15
  • 1970-01-01
  • 2023-03-31
  • 2011-11-06
  • 2011-09-21
相关资源
最近更新 更多