【问题标题】:Python tornado AsyncHttpClient does not send any requestPython龙卷风AsyncHttpClient不发送任何请求
【发布时间】:2017-09-16 07:16:50
【问题描述】:

下面是来自龙卷风documentation的sn-p。

def handle_response(response):
if response.error:
    print("Error: %s" % response.error)
else:
    print(response.body)

http_client = AsyncHTTPClient()
http_client.fetch("http://www.google.com/", handle_response)

但这不会向控制台打印任何内容。我尝试在最后添加time.sleep,但即使这样也没有任何打印。

此外,当我将上面的 url 更改为指向我的服务器时,它不会向我的服务器发送任何请求。 tornado.httpclient.HTTPClient 工作正常。

我在 Macbook 上使用 Python 3.6.1。

【问题讨论】:

    标签: python tornado


    【解决方案1】:

    Tornado 是一个异步框架,其中所有任务都由称为 IOLoop 的单个事件循环调度。在程序的最后,输入:

    import tornado.ioloop
    tornado.ioloop.IOLoop.current().start()
    

    这将启动循环运行并允许 AsyncHTTPClient 获取 URL。

    IOLoop 永远运行,因此您需要实现一些逻辑来确定何时调用IOLoop.stop()。在您的示例程序中,调用handle_response 底部的IOLoop.stop()。在真正的 HTTP 客户端程序中,循环应该一直运行,直到所有工作完成并且程序准备好退出。

    【讨论】:

      猜你喜欢
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      相关资源
      最近更新 更多