Example #1
0
    private static function req($sessionID, $path, $params = array(), $gzip = false, $allowError = false)
    {
        $url = self::$config['syncURLPrefix'] . $path;
        $params = array_merge(array("sessionid" => $sessionID, "version" => self::$config['syncVersion']), $params ? $params : array());
        if ($gzip) {
            $data = "";
            foreach ($params as $key => $val) {
                $data .= $key . "=" . urlencode($val) . "&";
            }
            $data = gzdeflate(substr($data, 0, -1));
            $headers = ["Content-Type: application/octet-stream", "Content-Encoding: gzip"];
        } else {
            $data = $params;
            $headers = [];
        }
        if (!empty(self::$config['zoteroVersion'])) {
            $headers[] = "X-Zotero-Version: " . self::$config['zoteroVersion'];
        }
        $response = HTTP::post($url, $data, $headers);
        self::checkResponse($response, $allowError);
        return $response;
    }
    private static function checkSessionID($sessionID)
    {
        if (!preg_match('/^[a-g0-9]{32}$/', $sessionID)) {
            throw new Exception("Invalid session id");
        }
    }
}
Sync::loadConfig();