/** * The function in which the actual remote cal is made * * @param Request $request * @throws InvalidRequestUrl */ public function doRequest(Request $request) { if (is_null($request->getUrl()) || $request->getUrl() == '') { throw new InvalidRequestUrl(); } //Using Guzzle instead of the old curl //We also use the cacert.pem to verify all SSL connections $client = new Client(); $result = $client->request($request->getMethod(), $request->getUrl(), ['headers' => $request->getHeaders(), 'verify' => __DIR__ . '/cacert.pem', 'proxy' => $request->getProxies()]); //Generate the request object and inject it into the request $response = new Response(); $response->setStatus($result->getStatusCode()); $response->setBody($result->getBody()); $response->setHeaders($result->getHeaders()); $request->setResponse($response); }