当我正常运行我的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)
答案 0 :(得分:2)
您的Python代码未配置为使用Fiddler作为代理,这就是localhost.fiddler
主机名无法识别的原因。该虚拟主机名仅在通过Fiddler发送请求时存在。
您使用Python的HTTP对象是什么?您需要检查其文档,以获取有关如何将其代理设置为127.0.0.1:8888
的信息。例如。 Proxy with urllib2