'Iterates over the response data.  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)
            if (not chunk):
                break
            (yield chunk)
        self._content_consumed = True
    gen = stream_untransfer(generate(), self)
    if decode_unicode:
        gen = stream_decode_response_unicode(gen, self)
    return gen
