/** * Perform HTTP request * * @param string $method HTTP method * @param string $url Full URL including protocol * @param array $params Any params * @return mixed API response */ protected function doRequest($method, $url, $params, $headers) { $request = $this->transport->createRequest(); $request->setMethod($method); $request->fromUrl($url); $request->addHeaders($headers); $request->setContent($params); if ($this->isAuthenticated() && null !== $this->authenticator) { $request = $this->authenticator->authenticate($request); } return $this->transport->send($request); }