connect_timeout=None, request_timeout=None,
if_modified_since=None, follow_redirects=True,
max_redirects=5, user_agent=None, use_gzip=True,
- network_interface=None):
+ network_interface=None, streaming_callback=None):
if if_modified_since:
timestamp = calendar.timegm(if_modified_since.utctimetuple())
headers["If-Modified-Since"] = email.utils.formatdate(
self.user_agent = user_agent
self.use_gzip = use_gzip
self.network_interface = network_interface
+ self.streaming_callback = streaming_callback
class HTTPResponse(object):
except:
# Old version of curl; response will not include headers
pass
- curl.setopt(pycurl.WRITEFUNCTION, buffer.write)
+ if request.streaming_callback:
+ curl.setopt(pycurl.WRITEFUNCTION, request.streaming_callback)
+ else:
+ curl.setopt(pycurl.WRITEFUNCTION, buffer.write)
curl.setopt(pycurl.FOLLOWLOCATION, request.follow_redirects)
curl.setopt(pycurl.MAXREDIRS, request.max_redirects)
curl.setopt(pycurl.CONNECTTIMEOUT, int(request.connect_timeout))