public function setBody($body)
    {
        if (is_string($body)) {
            $this->body = $body;
        } elseif (is_array($body)) {
            $this->setJsonBody($body);
        } elseif (is_callable($body)) {
            ob_start();
            $res1 = call_user_func($body);
            $res2 = ob_get_contents();
            $this->body = $res2 . $res1;
            ob_end_clean();
        }
        return $this;
    }