code: def next(self):
          
          self.open_read()
          data = self.resp.read(self.BufferSize)
          if not data:
              self.close()
              raise StopIteration
          return data
docs: By providing a next method, the key object supports use as an iterator.
          For example, you can now say:
  
          for bytes in key:
              write bytes to a file or whatever
  
          All of the HTTP connection stuff is handled for you.