private function doExecute($curlHandle, Request $request) { curl_setopt($curlHandle, CURLOPT_TIMEOUT, 10); curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true); curl_setopt($curlHandle, CURLOPT_HEADER, true); curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array('Accept: ' . $request->getHttpAccept())); $res = curl_exec($curlHandle); $info = curl_getinfo($curlHandle); $response = new Response(); $response->setStatus($info['http_code']); if (false !== $res) { $response->setHeaders(substr($res, 0, $info['header_size'])); $response->setBody(substr($res, -$info['download_content_length'])); } return $response; }