1

使用httplib2时是否可以显示文件在python中下载的百分比?我知道你可以使用 urllib2,但我想使用 httplib2。

4

2 回答 2

2

httplib2,没有任何类型的进度信标回调,所以它只是阻塞直到请求完成。

于 2011-02-20T07:17:29.943 回答
0

我不太确定如何使用 async() 似乎它已经正式解决了。

并且可以自己修改httplib2:(将回调函数arg添加到request()函数中) 在Http类中:在def _request中:将其修改为:

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

在 def _conn_requst: 中修改为:

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

于 2013-03-21T04:17:56.760 回答