Fiddler没有收到对localhost的请求

时间:2014-04-30 16:02:05

标签: python fiddler

当我正常运行我的python代码时:

batch_request = BatchHttpRequest(batch_uri = "http://localhost:12345/api/batch")

batch_request.add(get_customers)

batch_request.execute()

Fiddler没有接到请求。

当我将batch_uri更改为localhost.fiddler时,我得到:

ServerNotFoundError: Unable to find the server at localhost.fiddler 

ipv4.fiddler

相同

当我将batch_uri更改为我的电脑名称pc-21时,我得到:

<HttpError 400 when requesting http://pc-21:12345/api/batch returned "Bad Request">

我尝试将以下规则添加到fiddler:

static function OnBeforeRequest(oSession:Fiddler.Session){
    if (oSession.HostnameIs("MYAPP")){
        oSession.host = "127.0.0.1:8081";
    }
}

这也会导致服务器找不到错误。

但仍然没有一个出现在小提琴手中。

有人有任何想法吗?

修改

根据EricLaw的建议,我得到了以下代码,并由fiddler捕获:

proxy = ProxyInfo(proxy_type=socks.PROXY_TYPE_HTTP_NO_TUNNEL, proxy_host='127.0.0.1', proxy_port=8888)

http = Http(proxy_info=proxy)

get_customers = HttpRequest(http, print_complete, "http://localhost:65200/api/Customers", method="GET", headers={"Content-Type": "application/http; msgtype=request"})

batch_request = BatchHttpRequest(batch_uri = "http://localhost:65200/api/batch")

batch_request.add(get_customers, callback=print_complete)

try:
    batch_request.execute()

except HttpError, e:

    print "{0}".format(e)

1 个答案:

答案 0 :(得分:2)

您的Python代码未配置为使用Fiddler作为代理,这就是localhost.fiddler主机名无法识别的原因。该虚拟主机名仅在通过Fiddler发送请求时存在。

您使用Python的HTTP对象是什么?您需要检查其文档,以获取有关如何将其代理设置为127.0.0.1:8888的信息。例如。 Proxy with urllib2