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