/** * @inheritdoc */ public function sendRequest(\Bitpay\Client\Request $request) { $curl = curl_init(); if ($curl === false) { throw new \Exception('[ERROR] In CurlAdapter::sendRequest(): Could not initialize cURL.'); } $default_curl_options = $this->getCurlDefaultOptions($request); foreach ($this->getCurlOptions() as $curl_option_key => $curl_option_value) { if (is_null($curl_option_value) === false) { $default_curl_options[$curl_option_key] = $curl_option_value; } } curl_setopt_array($curl, $default_curl_options); if (RequestInterface::METHOD_POST == $request->getMethod()) { curl_setopt_array($curl, array(CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $request->getBody())); } $raw = curl_exec($curl); if ($raw === false) { $errorMessage = curl_error($curl); curl_close($curl); throw new \Exception('[ERROR] In CurlAdapter::sendRequest(): curl_exec failed with the error "' . $errorMessage . '".'); } /** @var Response */ $response = Response::createFromRawResponse($raw); curl_close($curl); return $response; }
/** * @inheritdoc */ public function sendRequest(RequestInterface $request) { $curl = curl_init(); $default_curl_options = $this->getCurlDefaultOptions($request); foreach ($this->getCurlOptions() as $curl_option_key => $curl_option_value) { if (!is_null($curl_option_value)) { $default_curl_options[$curl_option_key] = $curl_option_value; } } curl_setopt_array($curl, $default_curl_options); if (RequestInterface::METHOD_POST == $request->getMethod()) { curl_setopt_array($curl, array(CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $request->getBody())); } $raw = curl_exec($curl); if (false === $raw) { $errorMessage = curl_error($curl); curl_close($curl); throw new \Bitpay\Client\ConnectionException($errorMessage); } /** @var ResponseInterface */ $response = Response::createFromRawResponse($raw); curl_close($curl); return $response; }