httplib2 индикатор загрузки в python - PullRequest
1 голос
/ 20 февраля 2011

Можно ли отобразить процент загрузки файла в python при использовании httplib2? Я знаю, что вы можете с urllib2, но я хочу использовать httplib2.

Ответы [ 2 ]

2 голосов
/ 20 февраля 2011

Нет. httplib2 не имеет никакого обратного вызова маяка прогресса, поэтому он просто блокируется до завершения запроса.

0 голосов
/ 21 марта 2013

Я не очень уверен в том, как использовать 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)

...