'Return an iterator over `self.msg`.'

def __iter__(self):

    if self.with_headers:
        (yield self.get_headers())
        (yield '\r\n\r\n')
    if self.with_body:
        try:
            for chunk in self.iter_body():
                (yield chunk)
                if self.on_body_chunk_downloaded:
                    self.on_body_chunk_downloaded(chunk)
        except BinarySuppressedError as e:
            if self.with_headers:
                (yield '\n')
            (yield e.message)
