如何在使用龙卷风库时找到特定响应的请求?

时间:2017-06-30 05:30:42

标签: request tornado httpresponse http-get asynchttpclient

这是代码的简化版本。我使用http_client.fetch发出超过100个请求,我按随机顺序获取响应,对我来说知道哪个响应是针对哪个请求非常重要。我应该做些什么改变来实现这个目标?

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')

1 个答案:

答案 0 :(得分:0)

HTTPResponse对象has a "request" property,因此您只需访问回调中的response.request即可。

但是,更一般地说,如果您想将特定数据传递给回调,则可以使用“部分”:

from functools import partial

def handle_request(data, response):
    ...

data = "foo"
callback = partial(data, handle_request)
http_client.fetch(url, callback)

在这种情况下你不需要这种技术,但知道如何将数据传递给Tornado中的回调是很好的。