加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用Flex代码清除ArcGIS Server 10 REST缓存

发布时间:2020-12-15 01:34:57 所属栏目:百科 来源:网络整理
导读:http://www.giser.net/?p=299 1 在我们的基于REST API进行开发的应用系统中,经常会遇到需要清除REST cache的情况,例如服务发生变化或者新增、删除服务的时候。这些情况下在ArcGIS10 之前的版本时,只能够手工的去清除REST Cache。 2 在ArcGIS 10中,REST A

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读