实现效果如下:
可以在自己的app应用中操作地图服务的启动、停止、删除。
实现过程:
1、先生成token
生成token的url:
http://localhost:6080/arcgis/admin/generateToken
可查看官网生成token的文档介绍 Generate Token—ArcGIS REST APIs | ArcGIS Developers
参数:
(1)username: 使用该token的用户的用户名
(2) password:用户密码
(3) Client:使用token的客户端,提供三种类型:
a、HTTP Referer:Web应用的URL,申请的token可由该应用的页面使用;
b、IP:申请的token只能供指定IP地址的请求中使用;
c、 Request IP:只能由发出请求机器的ip使用该token,本文采用该方式。
(4) HTTP referer:如果Client选择了HTTP referer,那么这里就需要输入应用程序的地址;
(5) IP:如果Client选择了IP,这里就需要输入IP地址;
(6) Expiration:过期时间 ,超过该时间token将失效。默认不填有效时间为60分钟
由于需要输入用户和密码,考虑到网络安全问题,需注意以下几点:
(1)不要直接在前端去请求地址,使用后台代码请求
(2)用户密码可考虑加密处理,在后台进行解密。
(3)使用Post方式进行请求,高版本应该也不支持Get请求了
2、获取地图服务列表及服务启停状态
- 获取服务列表地址范例url:
NCGXQ为整个服务下的一个指定目录,不指定时将获取全部地图服务
http://localhost:6080/arcgis/admin/services/NCGXQ
参数:
(1)f:json 代表返回json格式
(2)token:xxx,上面第一步生成的token,这个token可以先缓存好,这样在token失效前可以继续使用,而不用每次都去请求获取token
- 获取服务启停状态url:
http://localhost:6080/arcgis/admin/services/NCGXQ/report
参数:
(1)f:json 代表返回json格式
(2)token:xxx,上面第一步生成的token,这个token可以先缓存好,这样在token失效前可以继续使用,而不用每次都去请求获取token
(3)parameters:['status'] 过滤获取包含状态属性的结果
(4)services:[{},{}] 填入上节获取到的服务数组
返回结果范例:其中realTimeState为当前服务的启停状态。
3、启动服务
启动服务url:
http://localhost:6080/arcgis/admin/services/NCGXQ/gaoxinbpfw.MapServer/start
可拆解为:服务列表地址/服务名称.服务类型/start
参数:
(1)f:json 代表返回json格式
(2)token:xxx,上面第一步生成的token,这个token可以先缓存好,这样在token失效前可以继续使用,而不用每次都去请求获取token
4、停止服务
停止服务url:
http://localhost:6080/arcgis/admin/services/NCGXQ/gaoxinbpfw.MapServer/stop
可拆解为:服务列表地址/服务名称.服务类型/stop
参数:
(1)f:json 代表返回json格式
(2)token:xxx,上面第一步生成的token,这个token可以先缓存好,这样在token失效前可以继续使用,而不用每次都去请求获取token
5、删除服务
删除服务url:
http://localhost:6080/arcgis/admin/services/NCGXQ/gaoxinbpfw.MapServer/delete
可拆解为:服务列表地址/服务名称.服务类型/delete
参数:
(1)f:json 代表返回json格式
(2)token:xxx,上面第一步生成的token,这个token可以先缓存好,这样在token失效前可以继续使用,而不用每次都去请求获取token