其实ArcIMS请求地图服务的基本原理是向ArcIMS发送ArcXML。ArcXML自带的HtmlViewer例子是通过jsForm提交的。下面利用.net自带的类HttpWebRequest实现ArcIMS发送ArcXML请求。
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
private void SendArcXML(string ArcXML)
{
try
{
string strRequest = ArcXML;
//创建HttpWebRequest对象。
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(@http://ArcIMS服务器机器名或IP地址/servlet/com.esri.esrimap.Esrimap?ServiceName=地图服务名称&ClientVersion=4.0&Form=False&Encode=False);
request.Method = "POST";
request.AllowAutoRedirect = true;
request.MaximumAutomaticRedirections = 1;
Encoding encoding = Encoding.GetEncoding("gb2312");
byte[] byte1 = encoding.GetBytes(strRequest);
request.ContentType = @"application/x-www-form-urlencoded";
request.ContentLength = byte1.Length;
request.Headers.Add(HttpRequestHeader.AcceptLanguage, "zh-cn");
Stream stream = request.GetRequestStream();
stream.Write(byte1, 0, byte1.Length);
stream.Close();
//接收请求
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream2 = response.GetResponseStream();
StreamReader sReader = new StreamReader(stream2, Encoding.Default);
//strResponse就是回送的ArcXML
string strResponse = sReader.ReadToEnd();
sReader.Close();
stream2.Close();
response.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}