ArcPy发布地图服务前,判断服务名是否重名

ArcPy发布地图服务前如何检测即将发布的服务名是否与服务器目录下别的服务是否同名
已邀请:

ZWX - 90后IT男

赞同来自:

可以通过下面代码获取服务下所有已发布的服务名称,然后与其比较就可以!
this.urlRestAdmin = "http://127.0.0.1:6080/arcgis/admin"
this.basicQ = "f=pjson&token=" + this.token

private List<string> GetServerName(string folder, string content)
{
try
{


if (folder == "/")
folder = "";
List<string> list = new List<string>();
string url = this.urlRestAdmin + "/services/" + folder + "/report";
if (!string.IsNullOrEmpty(content))
content += "&" + this.basicQ;
else
content = this.basicQ;
string result = this.GetResult(url, content);
JObject services = JObject.Parse(result);
JProperty reports = services.Property("reports");

foreach (dynamic rep in reports.Value)
{
JValue sName = rep.serviceName;
list.Add(sName.Value.ToString());
}

return list;
}
catch (Exception e)
{
throw e;
}
}

/// <summary>
/// post请求
/// </summary>
/// <param name="url">请求url</param>
/// <param name="postContent">post content</param>
/// <returns></returns>
private string GetResult(string url, string postContent)
{
try
{
WebRequest request = WebRequest.Create(url);
byte[] content = Encoding.UTF8.GetBytes(postContent);
request.ContentLength = content.Length;
request.ContentType = "application/x-www-form-urlencoded";
request.Method = WebRequestMethods.Http.Post;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(content, 0, content.Length);
requestStream.Close();
WebResponse response = request.GetResponse();
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(responseStream))
{
return reader.ReadToEnd();
}
}
}
}
catch (Exception e)
{
throw e;
}
}

/// <summary>
/// 产生token
/// </summary>
/// <returns>返回一个token,采用默认的过期时间令牌</returns>
private string GenerateAGSToken()
{
try
{
string urlGenerateToken = "";
string credential = "";
urlGenerateToken = this.generatetokenurl;
credential = string.Format("username={0}&password={1}&referer={2}&expiration=&f=json", this.username, this.password, this.referer);
string result = this.GetResult(urlGenerateToken, credential);

JObject jsonObject = JObject.Parse(result);
//JProperty token = jsonObject.Property("status");
//if (token.Name == "error")
//{
// throw new Exception("无效的用户名或密码,请重试!");
//}
JProperty token = jsonObject.Property("token");

return token.Value.ToString();
}
catch (Exception ex)
{
return string.Empty;
}
}

要回复问题请先登录注册