public function send()
{
// set the response header and body callback functions
$this->options[CURLOPT_HEADERFUNCTION] = [$this, 'responseHeaderCallback'];
$this->options[CURLOPT_WRITEFUNCTION] = [$this, 'responseBodyCallback'];
if ($this->command->isVerbose()) {
// set curls output to be the output buffer stream
$this->options[CURLOPT_STDERR] = fopen('php://stdout', 'w+');
$this->options[CURLOPT_VERBOSE] = 1;
// there is a bug when verbose is enabled, header out causes no output
// @see https://bugs.php.net/bug.php?id=65348
unset($this->options[CURLINFO_HEADER_OUT]);
}
// set all options on the resource
curl_setopt_array($this->getConnection(), $this->options);
// execute the request
$this->success = curl_exec($this->getConnection());
if ($this->success === false) {
$this->error = curl_error($this->getConnection());
} elseif ($this->success === true) {
$this->error = '';
}
$this->request = curl_getinfo($this->getConnection(), CURLINFO_HEADER_OUT);
// set the response http code
$this->statusCode = curl_getinfo($this->getConnection(), CURLINFO_HTTP_CODE);
$this->parseResponse();
return $this->success;
}