ArcGIS ENGINE 10.1 如何操作server

本文介绍如何通过HTTP请求利用ArcGIS Server的REST API进行服务管理操作,包括获取访问令牌、删除服务及停止服务的方法,并提供了具体的C#实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面给出rest方式,因为内容超出限制,请看附件:

ArcGIS 10.1 for Server可以通过http请求的方式访问,server接到请求后,然后响应,响应的结果是json格式的,对json格式我们可以自己去解析,但是这个很麻烦,在10.1中增加了很多对json格式处理的接口IJSONReader2IJSONWriter等很多,我在这里偷懒直接使用了AO中自带的接口,如果不用AO中的这些接口,自己借助一些json的解析工具如:JSON.NET也是可以的。

1.1.1 获取token

 public string GenerateAGSToken_RESTAdmin(string restAdmin, string username, string password)

        {

            try

            {

                if (restAdmin.EndsWith("\\"))

                {

                    restAdmin = restAdmin.Substring(0, restAdmin.Length - 1);

                }

                if (restAdmin.EndsWith("services"))

                {

                    restAdmin = restAdmin.Substring(0, restAdmin.Length - 9);

                }

 

                string loginUrl = restAdmin + "/generateToken";

                WebRequest request = WebRequest.Create(loginUrl);

                request.Method = "POST";

                string credential = "username=" + username + "&password=" + password + "&client=requestip&expiration=&f=json";

                byte[] content = Encoding.UTF8.GetBytes(credential);

                request.ContentLength = content.Length;

                request.ContentType = "application/x-www-form-urlencoded";

                Stream requestStream = request.GetRequestStream();

                requestStream.Write(content, 0, content.Length);

                requestStream.Close();

                WebResponse response = request.GetResponse();

                Stream responseStream = response.GetResponseStream();

                StreamReader reader = new StreamReader(responseStream);

                string result = reader.ReadToEnd();

 

 

                IJSONReader2 pJsonReader = new JSONReaderClass();

 

                IJSONObject pOb = pJsonReader.ParseJSONString(result) as IJSONObject;

 

                string token;

                if (pOb.TryGetValueAsString("token", out token))

                {

 

                }

            

                return token;

            }

            catch { return ""; }

        }

  public bool DeleteService_RESTAdmin(string restAdmin, string username, string password, string serviceName,string pType,string pFolder )

        {

            try

            {

 

                //string token = GenerateAGSToken_RESTAdmin(restAdmin, username, password);

                restAdmin = restAdmin.EndsWith("/") ? restAdmin.Substring(0, restAdmin.Length - 1) : restAdmin;

                string serviceUrl = restAdmin + "/services" +pFolder+"/"+ serviceName + "." + pType + "/delete";

                WebRequest request = WebRequest.Create(serviceUrl);

                string postcontent = "f=pjson&token=" + token;

                Byte[] content = Encoding.UTF8.GetBytes(postcontent);

                request.ContentLength = content.Length;

                request.ContentType = "application/x-www-form-urlencoded";

                request.Method = "POST";

                Stream requestStream = request.GetRequestStream();

                requestStream.Write(content, 0, content.Length);

                requestStream.Close();

                WebResponse response = request.GetResponse();

                Stream responseStream = response.GetResponseStream();

                StreamReader reader = new StreamReader(responseStream);

                string result = reader.ReadToEnd();

                return result.Contains("success");

            }

            catch { return false; }

        }


1.1.2 停止服务

  public  bool StopService_RESTAdmin(string restAdmin, string username, string password, string serviceName, string pType, string pFolder)

        {

            try

            {

              //  string token = GenerateAGSToken_RESTAdmin(restAdmin, username, password);

                restAdmin = restAdmin.EndsWith("/") ? restAdmin.Substring(0, restAdmin.Length - 1) : restAdmin;

if (pFolder.Length > 0)

                {

                    pFolder = pFolder.StartsWith("/") ? pFolder : "/" + pFolder;

                }

 

                string serviceUrl = restAdmin + "/services" +pFolder+"/"+  serviceName + "." + pType + "/stop";

                WebRequest request = WebRequest.Create(serviceUrl);

                string postcontent = "f=pjson&token=" + token;

                Byte[] content = Encoding.UTF8.GetBytes(postcontent);

                request.ContentLength = content.Length;

                request.ContentType = "application/x-www-form-urlencoded";

                request.Method = "POST";

                Stream requestStream = request.GetRequestStream();

                requestStream.Write(content, 0, content.Length);

                requestStream.Close();

                WebResponse response = request.GetResponse();

                Stream responseStream = response.GetResponseStream();

                StreamReader reader = new StreamReader(responseStream);

                string result = reader.ReadToEnd();

                return result.Contains("success");

            }

            catch { return false; }

        }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值