public function send($method, $url, $params = null) { $this->preFlightCheck(); $client = self::clientUserAgent(); $body = empty($params) ? null : json_encode($params); $cookies = Castle::getCookieStore(); $requestHeaders = json_encode(self::getHeaders()); $headers = array('X-Castle-Cookie-Id: ' . $cookies->read('__cid'), 'X-Castle-User-Agent: ' . self::getUserAgent(), 'X-Castle-Headers: ' . $requestHeaders, 'X-Castle-Ip: ' . self::getIp(), 'X-Castle-Client-User-Agent: ' . $client, 'Content-Type: application/json', 'Content-Length: ' . strlen($body)); // Check if there is a current session and pass it along $session = Castle::getTokenStore()->getSession(); if (isset($session)) { $headers[] = 'X-Castle-Session-Token: ' . $session; } $request = new Castle_RequestTransport(); $request->send($method, self::apiUrl($url), $body, $headers); return $this->handleResponse($request); }