'Iterates over the response data.  When stream=True is set on the
request, this avoids reading the content at once into memory for
large responses.  The chunk size is the number of bytes it should
read into memory.  This is not necessarily the length of each item
returned as decoding can take place.'

def iter_content(self, chunk_size=1, decode_unicode=False):

    if self._content_consumed:
        return iter_slices(self._content, chunk_size)
    def generate():
        while 1:
            chunk = self.raw.read(chunk_size, decode_content=True)
            if (not chunk):
                break
            (yield chunk)
        self._content_consumed = True
    gen = generate()
    if decode_unicode:
        gen = stream_decode_response_unicode(gen, self)
    return gen
