/**
  * 获取请求的响应
  * @public
  * @return <WebResponse> http请求的响应信息
  */
 public function getResponse()
 {
     if (!($fp = fsockopen($this->host, $this->port, $errno, $errstr, $this->timeout))) {
         switch ($errno) {
             case -3:
                 $this->errormsg = 'Socket连接创建失败 (-3)';
                 break;
             case -4:
                 $this->errormsg = 'DNS定位失败 (-4)';
                 break;
             case -5:
                 $this->errormsg = '连接超时或被拒绝 (-5)';
                 break;
             default:
                 $this->errormsg = '连接失败 (' . $errno . ')';
                 break;
                 $this->errormsg .= ' ' . $errstr;
         }
         return false;
     } else {
     }
     socket_set_timeout($fp, $this->timeout);
     $request = $this->buildRequestInfo();
     fwrite($fp, $request);
     $content = '';
     $readState = 'start';
     $response = new WebResponse();
     while (!feof($fp)) {
         $line = fgets($fp, 4096);
         if ($readState == 'start') {
             $readState = 'header';
             if (!preg_match('/HTTP\\/(\\d\\.\\d)\\s*(\\d+)\\s*(.*)/', $line, $m)) {
                 $this->errormsg = "非法的请求状态: " . htmlentities($line);
                 return false;
             }
             $http_version = $m[1];
             //未使用
             $response->setStatus($m[2]);
             $status_string = $m[3];
             //未使用
         } else {
             if ($readState == 'header') {
                 if (trim($line) == '') {
                     $readState = 'content';
                 }
                 if (!preg_match('/([^:]+):\\s*(.*)/', $line, $m)) {
                     continue;
                 }
                 $key = strtolower(trim($m[1]));
                 $val = trim($m[2]);
                 $response->appendHeader($key, $val);
             } else {
                 $content .= $line;
             }
         }
     }
     fclose($fp);
     $response->setContent($content);
     return $response;
 }