Python 龙卷风如何下载文件?

Python 龙卷风如何下载文件?,python,http,tornado,Python,Http,Tornado,我正在用Python和Tornado编写某种缓存代理服务器,我需要从远程服务器下载不同类型的文件,我使用带有回调的AsyncHTTPClient来完成,它在图像上工作得很好,但当涉及到视频或3d模型时,回调函数接收空的请求。body,我做错了什么?我的代码如下所示: def test_callback(self, response): print response.body def get(self): client = tornado.httpclient.AsyncHTTP

我正在用Python和Tornado编写某种缓存代理服务器,我需要从远程服务器下载不同类型的文件,我使用带有回调的
AsyncHTTPClient
来完成,它在图像上工作得很好,但当涉及到视频或3d模型时,回调函数接收空的
请求。body
,我做错了什么?我的代码如下所示:

def test_callback(self, response):
    print response.body

def get(self):
    client = tornado.httpclient.AsyncHTTPClient()
    client.fetch(remote_url, self.test_callback)

当我下载视频或3d模型时,它不会打印任何内容。

我认为这是因为请求中存在错误或请求超时,因此我建议您尝试以下操作:

def test_callback(self, response):
    if response.error:
        print("Error:", response.error)
    else:
        print(response.body)

这会给你更多的信息。然而,我认为这是因为请求一直超时。因此,我建议将
AsynHTTPClient
中的
connect\u timeout
request\u timeout
参数设置为
None

谢谢,这确实是超时错误,但我认为这个错误是由于文件大小而出现的,只是当时没有完全下载,在这种情况下,可以将
connect\u timeout
request\u timeout
设置为
None
吗?是的,确实没有其他方法。另外,您可能想使用
CurlAsyncHTTPClient
而不是普通的
AsyncHTTPClient
。我做了一个liitle研究,发现在Tornado 4.2.1上设置
connect\u timeout
request\u timeout
都不起作用,但设置得有点大,比如3600秒(1小时)很好。