/** * @param Request $Request * @throws \Productsup\Exceptions\ServerException * @return Response */ public function executeRequest(Request $Request) { if ($this->verbose) { $Request->allowCompression = false; // disable gzip for easier debugging $Request->verboseOutput(); } $this->prepareRequest($Request); if (!($curl_response = curl_exec($this->curl))) { throw new ServerException(curl_error($this->curl), curl_errno($this->curl)); } list($responseHeaders, $responseBody) = $this->parseHttpResponse($curl_response); $statusCode = curl_getinfo($this->curl, CURLINFO_HTTP_CODE); $responseObject = new Response($statusCode, $responseHeaders, $responseBody); if ($this->verbose) { $responseObject->verboseOutput(); } return $responseObject; }