国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

哪位大神能給在workerman中解析http response返回?cái)?shù)據(jù)的 協(xié)議解析區(qū)分header和body的思路啊

bigman

主要想實(shí)現(xiàn)異步http client的 get post

3221 2 0
2個(gè)回答

抽不完的寂寞

head和body之間有四個(gè)字符 \r\n\r\n
?

  • bigman 2019-07-08

    我指的是完整的 resoponse 數(shù)據(jù) 解析怎么區(qū)分接受完一個(gè)完整的包

cxiaobo520

你可以看workman/Protocols/Http/Response.php該文件
定義了header變量:

    /**
     * Header data.
     *
     * @var array
     */
    protected $_header = null;

定義了body變量:

    /**
     * Http body.
     *
     * @var string
     */
    protected $_body = null;

然后通過(guò)header()和withBody()對(duì)數(shù)據(jù)進(jìn)行賦值,在通過(guò)一下方法進(jìn)行拼接:

   /**
     * __toString.
     *
     * @return string
     */
    public function __toString()
    {
        if (isset($this->file)) {
            return $this->createHeadForFile($this->file);
        }

        $reason = $this->_reason ? $this->_reason : static::$_phrases[$this->_status];
        $body_len = \strlen($this->_body);
        if (empty($this->_header)) {
            return "HTTP/{$this->_version} {$this->_status} $reason\r\nServer: workerman\r\nContent-Type: text/html;charset=utf-8\r\nContent-Length: $body_len\r\nConnection: keep-alive\r\n\r\n{$this->_body}";
        }

        $head = "HTTP/{$this->_version} {$this->_status} $reason\r\n";
        $headers = $this->_header;
        if (!isset($headers['Server'])) {
            $head .= "Server: workerman\r\n";
        }
        foreach ($headers as $name => $value) {
            if (\is_array($value)) {
                foreach ($value as $item) {
                    $head .= "$name: $item\r\n";
                }
                continue;
            }
            $head .= "$name: $value\r\n";
        }
....

這樣就區(qū)分header和body啦

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??