1

我正在我的 Windows 机器上测试一个 Google App Engine 应用程序,在 localhost:8084 本地运行。当我在我的应用程序中导航时,Fiddler2 会显示我的所有活动,但是当使用 urlfetch.fetch() 请求外部 url 时,它根本不会出现在 Fiddler 中,即使使用的是 http,而不是 https 地址,并且成功响应中的状态码 200。

我需要做什么才能从 Google App Engine 获取 urlfetch.fetch() 请求以显示在 Fiddler2 中?

4

2 回答 2

5

我的理解是 Fiddler2 作为 HTTP 代理运行;浏览器请求通过此代理而不是直接发送到 Internet 资源。这允许 Fiddler2 捕获有关请求和响应的信息。

根据Fiddler2 文档,“您可以将任何接受 HTTP 代理的应用程序配置为通过 Fiddler 运行,以便调试其流量”。所以我认为您需要更改 URLFetch API 调用以使用代理,提供 Fiddler URL 和端口。但是,URLFetch 文档并没有具体说明如何执行此操作。您可能可以使用此问题中指定的 urllib2 。

于 2011-08-16T10:04:34.047 回答
1

Irussell 通常是正确的,但我想让答案更具体。

由于 Google AppEngine 生产环境不支持代理,因此开发引擎也不直接支持代理。看来,克服这个限制的唯一方法是修改 AppEngine 开发服务器的代码。

您必须通过添加以下行来修改 urlfetch_stub.py 文件:

connection = connection_class('127.0.0.1', 8888)

full_path = protocol + "://" + host + full_path

您可以在我的博文 Use Fiddler to debug urlfetch requests in Google AppEngine中找到详细说明

于 2012-09-02T11:38:25.103 回答