public function post($url, $data = array(), $params = null) { if (!is_array($params)) { $params = array('resultcb' => $params); } if (!isset($params['uri']) || !isset($params['host'])) { $prepared = HTTPClient::prepareUrl($url); if (!$prepared) { if (isset($params['resultcb'])) { call_user_func($params['resultcb'], false); } return; } list($params['host'], $params['uri']) = $prepared; } if (!isset($params['version'])) { $params['version'] = '1.1'; } if (!isset($params['contentType'])) { $params['contentType'] = 'application/x-www-form-urlencoded'; } $this->writeln('POST ' . $params['uri'] . ' HTTP/' . $params['version']); $this->writeln('Host: ' . $params['host']); if ($this->pool->config->expose->value) { $this->writeln('User-Agent: phpDaemon/' . Daemon::$version); } if (isset($params['cookie']) && sizeof($params['cookie'])) { $this->writeln('Cookie: ' . http_build_query($this->cookie, '', '; ')); } $body = ''; foreach ($data as $k => $v) { if (is_object($v) && $v instanceof HTTPClientUpload) { $params['contentType'] = 'multipart/form-data'; } } $this->writeln('Content-Type: ' . $params['contentType']); $body = http_build_query($data, '&', PHP_QUERY_RFC3986); $this->writeln('Content-Length: ' . strlen($body)); $this->writeln(''); $this->write($body); $this->headers = array(); $this->body = ''; $this->onResponse->push($params['resultcb']); $this->checkFree(); }