Reads and returns the entire request body.

        On first access, reads `content_length` bytes from `input` and stores
        the result on the request object. On subsequent access, returns the
        cached value.

def body(self):
        """Reads and returns the entire request body.

        On first access, reads `content_length` bytes from `input` and stores
        the result on the request object. On subsequent access, returns the
        cached value.
        """
        if self._body is None:
            if self._body_reader is None:
                self._body = self.input.read(self.content_length or 0)
            else:
                self._body = self._body_reader(self.input)
        return self._body