使用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:// / /admin,例如 http://zbc/arcgis/rest/admin

在调用这个方法的时候,需要使用POST方法,其中POST的参数主要有:

参数
细节

f
响应返回的格式,默认返回html

值为:html或json

username
REST 管理员的用户名

Password
REST 管理员的密码

client
生成token使用的IP地址或者HTTP Referer

值为ip,requestip或referer

当值为ip时,ip参数必须填写

当值为referer, referer参数必须填写

当值为requestip时,ip和referer参数不必填写,系统会使用当前发送HTTP请求的ip地址来生成token,一般来说使用该选项,除非生成token和清除cache不是由同一个ip或referer的程序完成。

referer
client=referer时候有效,需要输入调用REST Admin 的基础网址,例如:referer=http://myserver/mywebapp

ip
client=ip时有效,需要输入调用REST Admin 的ip,例如ip=10.14.102.85

expiration
Token超时时间,单位为分钟,默认为60分钟,token有效期最长为一年(525600分钟)。

例如expiration=43200 (1 month)

该方法的返回结果为(JSON):

{

“token”: “ ”,

“expires”: //the time (in milliseconds from epoch) when this token will expire

}

2.2 清除缓存方法的Url为

http:// /cache/clear?token=

admin-url 上面已经提到,为http:// / /admin,例如 http://zbc/arcgis/rest/admin

这是一个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,因此ipreferer不填

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值