/**
  * @param HttpRequest $request
  * @return HttpResponse
  */
 public function handleRequest(HttpRequest $request)
 {
     //TODO: Guzzle request
     $guzzleRequest = $this->client->createRequest($request->getMethod(), $request->getUrl(), $request->getHeaders());
     $guzzleRequest->getCurlOptions()->remove(CURLOPT_SSL_VERIFYPEER);
     $guzzleRequest->getCurlOptions()->remove(CURLOPT_CAINFO);
     $guzzleRequest->getCurlOptions()->add(CURLOPT_SSL_VERIFYPEER, 0);
     $guzzleRequest->getCurlOptions()->add(CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
     $guzzleRequest->getCurlOptions()->add(CURLOPT_RETURNTRANSFER, true);
     $guzzleRequest->getCurlOptions()->add(CURLOPT_VERBOSE, 0);
     $guzzleRequest->getCurlOptions()->add(CURLOPT_HEADER, false);
     $guzzleRequest->getCurlOptions()->add(CURLOPT_TIMEOUT, 10);
     //$guzzleRequest = $this->enableCurlOptionProxy($guzzleRequest);
     //TODO: Guzzle response
     $guzzleResponse = $this->client->send($guzzleRequest);
     $response = new HttpResponse($guzzleResponse->getInfo('http_code'), '', array(HttpAdapterInterface::HTTP_HEADER_CONTENT_TYPE => $guzzleResponse->getInfo('content_type')), $guzzleResponse->getBody(true));
     return $response;
 }
 /**
  * It connects to the url and give response.
  *
  * @param PrestashopRestClientParameters $clientParameters
  *
  * @return \Guzzle\Http\Message\Response
  *
  * @throws \Exception
  */
 protected function connect($clientParameters)
 {
     $parametersHash = $clientParameters->getHash();
     if (!isset($this->resultCache[$parametersHash])) {
         $guzzleParams = ['connect_timeout' => self::CONNECT_TIMEOUT, 'timeout' => self::TIMEOUT, 'auth' => [$clientParameters->getHttpLogin(), $clientParameters->getHttpPassword()]];
         $request = $this->client->get($clientParameters->getPrestashopUrl(), [], $guzzleParams);
         $request->getCurlOptions()->set(CURLOPT_CONNECTTIMEOUT, self::CONNECT_TIMEOUT);
         $request->getCurlOptions()->set(CURLOPT_TIMEOUT, self::TIMEOUT);
         try {
             $response = $this->client->send($request);
             $this->resultCache[$parametersHash] = $response;
         } catch (\Exception $e) {
             $this->resultCache[$parametersHash] = $e;
             throw $e;
         }
     } else {
         $response = $this->resultCache[$parametersHash];
         if ($response instanceof \Exception) {
             throw $response;
         }
     }
     return $response;
 }