使用Flex代码清除ArcGIS Server 10 REST缓存
http://www.giser.net/?p=299 1 在我们的基于REST API进行开发的应用系统中,经常会遇到需要清除REST cache的情况,例如服务发生变化或者新增、删除服务的时候。这些情况下在ArcGIS10 之前的版本时,只能够手工的去清除REST Cache。 2 在ArcGIS 10中,REST API新增加了清除REST cache的方法,具体流程是:首先使用generateToken 方法生成toeken,然后使用token调用cache/clear方法去清除缓存。 2.1 generateToken方法的Url为: http:// /generateToken 其中admin-url为http://
在调用这个方法的时候,需要使用POST方法,其中POST的参数主要有: 参数 f 值为:html或json username Password client 值为ip,requestip或referer 当值为ip时,ip参数必须填写 当值为referer, referer参数必须填写 当值为requestip时,ip和referer参数不必填写,系统会使用当前发送HTTP请求的ip地址来生成token,一般来说使用该选项,除非生成token和清除cache不是由同一个ip或referer的程序完成。 referer ip expiration 例如expiration=43200 (1 month) 该方法的返回结果为(JSON): { “token”: “
“expires”:
} 2.2 清除缓存方法的Url为 http://
/cache/clear?token=
admin-url 上面已经提到,为http://
这是一个GET方法,只需要在http:// /cache/clear后面加上token参数即可,此处的token即为我们上面通过generateToken方法得到的token。 该方法的另外一个参数为f,即返回数据格式,值为html或json,默认为html 该方法的返回结果为(JSON): { “success”: true //the value will always be true. Failure will result in an error response. } 如果success参数的结果为true,则清除成功,否则失败。 3 Flex 代码实现 经过我们上面的分析,可以很明确的得到清除REST cache的步骤,那么下面我们就用flex来实现这个功能。 3.1 生成token //获取token private function getToken(adminUrl:String,username:String,password:String) { var httpService:HTTPService = new HTTPService(); ///构造generateToken方法Url httpService.url = adminUrl+”/generateToken”; //使用POST方法 httpService.method=”POST”; var param:Object = new Object(); //用户名 param.username = username; //密码 param.password = password; //IP param.ip = “”; //referer param.referer=”"; //client 使用requestip,因此ip和referer不填 param.client = “requestip”; //超时设为1个小时 param.expiration = 60; //以json方式返回 param.f=”json”; httpService.addEventListener(ResultEvent.RESULT,OnResultGetToken); httpService.addEventListener(FaultEvent.FAULT,OnFaultGetToken); //发送请求 httpService.send(param); } 3.2 清除REST缓存 private function Clear(adminUrl:String,token:String) { var httpService:HTTPService = new HTTPService(); //构造清楚缓存Url httpService.url = adminUrl+”/cache/clear?token=”+token+”&f=json”; httpService.addEventListener(ResultEvent.RESULT,OnResultClear); httpService.addEventListener(FaultEvent.FAULT,OnFaultClear); //发送请求 httpService.send(); } 代码下载: ClearCache (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |