python中httplib2下载进度条

1 投票
2 回答
696 浏览
提问于 2025-04-16 12:09

在使用httplib2的时候,能不能显示一个文件下载了多少百分比呢?我知道用urllib2可以做到,但我想用httplib2。

2 个回答

0

我对如何使用async()不是很确定,似乎这个问题已经被官方解决了。

而且你可以自己修改httplib2:
(给request()函数添加一个回调函数参数)
在Http类中:
在def _request中:
把它修改成:

def _request(self, conn, host, absolute_uri, request_uri, method, body, headers, redirections, cachekey,callback=None):

在def _conn_request中:把它修改成:

def _conn_request(self, conn, request_uri, method, body, headers,callback=None):

下面这个也要修改

if method == "HEAD":
    conn.close()
else:
    if not callback:
        content = response.read()
    else:
        while 1:
           content=response.read(callback[0])
           if not content:break
           callback[1]()

使用时可以这样输入:

resp, content = h.request("http://stackoverflow.com", [8192,callbackfunc])

前面的8192是块大小,callbackfunc是你定义的回调函数(就像在urllib中一样)

2

不,httplib2没有任何进度回调的功能,所以它会一直等待,直到请求完成。

撰写回答