使用龙卷风库时如何找到特定响应的请求?
How to find the request for a particular response while using tornado library?
这是 code.I 的简化版本,使用 http_client.fetch 发出了 100 多个请求,我收到的响应顺序是随机的,知道哪个响应是针对我应该 made.What 更改哪个请求以实现此目的?
from tornado import ioloop, httpclient
def handle_request(response):
jsonobject_ticker = json.loads( response.body, object_hook= JSONObject)
currency_price=jsonobject_ticker.result.Last
print "{0:.9f}".format(currency_price)
global i
i -= 1
if i == 0:
ioloop.IOLoop.instance().stop()
def check_for_pump():
for index in range (len(shortlisted)):
market=shortlisted[index]
print market
http_client = httpclient.AsyncHTTPClient()
global i
i += 1
http_client.fetch(get_ticker_url(shortlisted[index]), handle_request, method='GET')
HTTPResponse 对象 has a "request" property,因此您只需在回调中访问 response.request
。
但是,更一般地说,如果您想将特定数据传递给回调,您可以使用 "partial":
from functools import partial
def handle_request(data, response):
...
data = "foo"
callback = partial(data, handle_request)
http_client.fetch(url, callback)
在这种情况下您不需要这种技术,但了解如何将数据传递给 Tornado 中的回调是很好的。
这是 code.I 的简化版本,使用 http_client.fetch 发出了 100 多个请求,我收到的响应顺序是随机的,知道哪个响应是针对我应该 made.What 更改哪个请求以实现此目的?
from tornado import ioloop, httpclient
def handle_request(response):
jsonobject_ticker = json.loads( response.body, object_hook= JSONObject)
currency_price=jsonobject_ticker.result.Last
print "{0:.9f}".format(currency_price)
global i
i -= 1
if i == 0:
ioloop.IOLoop.instance().stop()
def check_for_pump():
for index in range (len(shortlisted)):
market=shortlisted[index]
print market
http_client = httpclient.AsyncHTTPClient()
global i
i += 1
http_client.fetch(get_ticker_url(shortlisted[index]), handle_request, method='GET')
HTTPResponse 对象 has a "request" property,因此您只需在回调中访问 response.request
。
但是,更一般地说,如果您想将特定数据传递给回调,您可以使用 "partial":
from functools import partial
def handle_request(data, response):
...
data = "foo"
callback = partial(data, handle_request)
http_client.fetch(url, callback)
在这种情况下您不需要这种技术,但了解如何将数据传递给 Tornado 中的回调是很好的。