1. 程式人生 > 實用技巧 >Tornado AsyncHTTPClient Future資料提交

Tornado AsyncHTTPClient Future資料提交

Tornado AsyncHTTPClient Future資料提交示例
# -.- coding:utf-8 -.-
# __author__ = 'zt'

import tornado.ioloop
from tornado.concurrent import Future
from tornado.httpclient import AsyncHTTPClient


def async_fetch_future(url):
    http_client = AsyncHTTPClient()
    my_future = Future()
    fetch_future = http_client.fetch(url)
    fetch_future.add_done_callback(
lambda f: my_future.set_result(f.result())) return my_future def main(): return async_fetch_future('http://www.qq.com').running() if __name__ == '__main__': response = tornado.ioloop.IOLoop.instance().run_sync(main) print response.body # -.- coding:utf-8 -.- # __author__ = 'zt'
import json import tornado.ioloop from tornado.httpclient import AsyncHTTPClient from tornado.concurrent import Future def futrue_callback(res_future): print("呼叫回撥函式 Futrue") s = res_future.result().body.decode('gbk') print(s) def async_fetch_future(url): """ 非同步請求,使用Future類 :param url: :return:
""" http_client = AsyncHTTPClient() my_future = Future() fetch_future = http_client.fetch(url) fetch_future.add_done_callback( # Future的result預設為HttpResponce lambda f: my_future.set_result(f.result())) return my_future if __name__ == '__main__': # 非同步請求,返回Futrue類 s = async_fetch_future("http://www.qq.com") io_loop = tornado.ioloop.IOLoop.current() io_loop.add_future(s, callback=futrue_callback) io_loop.start()