asp.net 响应xml格式数据的请求
1) 添加MSXML2的应用
2) 使用XMLHTTPClass 请求数据到一个URL地址。
string FileName = ""; //Setting the xml address
XmlDocument doc = new XmlDocument(); //Create Xml Document file object.
try
{
doc.Load(@FileName);
}
catch (Exception ex)
{
//throw new System.Exception("Can not load xml file.");
}
//create xml http post object
XMLHTTPClass xmlHttp = new MSXML2.XMLHTTPClass();
string backxmlstring = string.Empty;
string strURL = ""; //Setting the post url.
try
{
//open post url
xmlHttp.open("post", strURL, false, "", "");
//send xml string to url
xmlHttp.send(doc.InnerXml);
//Get Back XML
backxmlstring = xmlHttp.responseText.ToString();
}
catch
{
backxmlstring = "Can not open the target Url";
}
XmlDocument doc = new XmlDocument(); //Create Xml Document file object.
try
{
doc.Load(@FileName);
}
catch (Exception ex)
{
//throw new System.Exception("Can not load xml file.");
}
//create xml http post object
XMLHTTPClass xmlHttp = new MSXML2.XMLHTTPClass();
string backxmlstring = string.Empty;
string strURL = ""; //Setting the post url.
try
{
//open post url
xmlHttp.open("post", strURL, false, "", "");
//send xml string to url
xmlHttp.send(doc.InnerXml);
//Get Back XML
backxmlstring = xmlHttp.responseText.ToString();
}
catch
{
backxmlstring = "Can not open the target Url";
}
3) 响应此xml请求。
//Read Xml inputed.
Stream st = Request.InputStream;
StreamReader sr = new StreamReader(st);
string SRstring = sr.ReadToEnd();
XmlDocument doc = new XmlDocument();
doc.LoadXml(SRstring);
sr.Close();
string nodeString = doc.SelectSingleNode("//test").InnerText; //get the text of node.
Stream st = Request.InputStream;
StreamReader sr = new StreamReader(st);
string SRstring = sr.ReadToEnd();
XmlDocument doc = new XmlDocument();
doc.LoadXml(SRstring);
sr.Close();
string nodeString = doc.SelectSingleNode("//test").InnerText; //get the text of node.
4) 返回一个xml格式的给请求者.
Response.Clear();
System.IO.MemoryStream ms = new MemoryStream();
XmlTextWriter xw = new XmlTextWriter(ms, Encoding.UTF8);
xw.WriteStartDocument();
xw.WriteStartElement("test");
xw.WriteStartAttribute("attr", "1");
xw.WriteEndAttribute();
xw.WriteString("test111");
xw.WriteEndElement();
xw.WriteEndDocument();
xw.Flush();
ms.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms);
string backString = sr.ReadToEnd();//get the back string.
xw.Close();
ms.Close();
Response.Write(backString); // return the back string.
System.IO.MemoryStream ms = new MemoryStream();
XmlTextWriter xw = new XmlTextWriter(ms, Encoding.UTF8);
xw.WriteStartDocument();
xw.WriteStartElement("test");
xw.WriteStartAttribute("attr", "1");
xw.WriteEndAttribute();
xw.WriteString("test111");
xw.WriteEndElement();
xw.WriteEndDocument();
xw.Flush();
ms.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms);
string backString = sr.ReadToEnd();//get the back string.
xw.Close();
ms.Close();
Response.Write(backString); // return the back string.