private function readBody(): self
    {
        if (null !== $this->body) {
            return $this;
        }

        if ($this->headers->get('Transfer-Encoding') === 'chunked') {
            $this->body = $this->readChunked();
        } else {
            $this->body = $this->readDefault((int) $this->headers->get('Content-Length', 4096));
        }

        return $this;
    }