==============================
======发送时代码==============
==============================
==asp.net 服务端代码以 xml utf-8的格式向指定地址post 数据并接收返回值 HttpWebRequest
protected void btn_Click(object sender, EventArgs e)
{
XmlDocument xd = GetXmlData();
string postData = xd.InnerXml;
string a = WebHttpRequest("POST",txtSendMsgUrl.Text, postData);
try
{
XmlDocument docr = new XmlDocument();
docr.LoadXml(a);
XmlNode node1 = docr.SelectSingleNode("/Res/Message/Result");
XmlNode node2 = docr.SelectSingleNode("/Res/Message/ErrDesc");
if (node1 != null && node2 )
{
Response.Write(node1.InnerXml + "," + node2.InnerXml);
}
}
catch
{ }
}
/// <summary>
/// 生成xml doc做为传送参数 里面可自行添加字段及数据
/// </summary>
/// <returns></returns>
public XmlDocument GetXmlData()
{
XmlDocument doc = new XmlDocument();
//加入XML的声明段落
XmlDeclaration declarationDoc = doc.CreateXmlDeclaration("1.0", "utf-8", "");
doc.AppendChild(declarationDoc);
//创建一个根元素
XmlElement root = doc.CreateElement("root");
XmlAttribute attr = doc.CreateAttribute("Type");
attr.InnerXml = "type";
root.Attributes.Append(attr);
//创建节点1
XmlNode ChildNode1 = doc.CreateNode(XmlNodeType.Element, "node1", "");
ChildNode1.InnerXml = "node1";
root.AppendChild(ChildNode1);
//创建节点2
XmlNode ChildNode2 = doc.CreateNode(XmlNodeType.Element, "node2", "");
ChildNode2.InnerXml = "node2";
root.AppendChild(ChildNode2);
doc.AppendChild(root);
//此处保存只是为了验证生成的xml是否正确,可以注释掉
string fileName = System.Guid.NewGuid().ToString()+".xml";
doc.Save(HttpContext.Current.Server.MapPath(@"./tmp\" + fileName));
return doc;
}
/// <summary>
/// WebHttpRequest 基础类 数据转换成utf-8编码以post发送给指定地址 传输的是xml格式
/// </summary>
/// <param name="webMethod">提交方式 POST,GET</param>
/// <param name="sURL">提交路径</param>
/// <param name="webPostData">参数字符串</param>
/// <returns>返回HTML代码</returns>
internal string WebHttpRequest(string webMethod, string sURL, string webPostData)
{
//将字符串转换成utf-8字节数组
byte[] sData = Encoding.UTF8.GetBytes(webPostData);
string fString = "";
#region "WEB实例初始化"
HttpWebRequest webRequest = null;
HttpWebResponse webResponse = null;
Uri webURL = new Uri(sURL);
Stream webStream = null;
StreamReader webReader = null;
#endregion
try
{
webRequest = (HttpWebRequest)WebRequest.Create(webURL);
webRequest.Method = webMethod;
webRequest.ContentType = "text/xml";
//"application/x-www-form-urlencoded";
webRequest.ContentLength = sData.Length;
//webRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1) Web-Sniffer/1.0.24";
try
{
webStream = webRequest.GetRequestStream();
webStream.Write(sData, 0, sData.Length);
webStream.Close();
}
catch (IOException ioEx)
{
throw ioEx;
}
finally
{
webStream.Close();
webStream.Dispose(); //清空实例
}
try
{
webResponse = (HttpWebResponse)webRequest.GetResponse();
webReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8);
fString = webReader.ReadToEnd();
return fString;
}
catch (IOException ioEx)
{
throw ioEx;
}
finally
{
webReader.Dispose();
}
}
catch (HttpListenerException httpEx)
{
throw httpEx;
}
finally
{
#region "清空实例对象"
webStream.Dispose();
webReader.Dispose();
#endregion
}
}
=========================================
=========接收数据并返回值xml=============
=========================================
==此处发送和接收到返回的xml格式用的是同一种,可以根据实际情况自行处理
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
XmlDocument doc = new XmlDocument();
try
{
StreamReader reader = new StreamReader(Request.InputStream,Encoding.UTF8);
String xml = reader.ReadToEnd();
doc.LoadXml(xml);
XmlNode node1 = doc.SelectSingleNode("/root/node1").InnerXml;
XmlNode node2 = doc.SelectSingleNode("/root/node2").InnerXml;
XmlDocument xd = GetXmlData();
byte[] tdata = Encoding.UTF8.GetBytes(xd.InnerXml);
Stream webStream = Response.OutputStream;
webStream.Write(tdata, 0, tdata.Length);
webStream.Close();
}
catch()
{}
}
}
======发送时代码==============
==============================
==asp.net 服务端代码以 xml utf-8的格式向指定地址post 数据并接收返回值 HttpWebRequest
protected void btn_Click(object sender, EventArgs e)
{
XmlDocument xd = GetXmlData();
string postData = xd.InnerXml;
string a = WebHttpRequest("POST",txtSendMsgUrl.Text, postData);
try
{
XmlDocument docr = new XmlDocument();
docr.LoadXml(a);
XmlNode node1 = docr.SelectSingleNode("/Res/Message/Result");
XmlNode node2 = docr.SelectSingleNode("/Res/Message/ErrDesc");
if (node1 != null && node2 )
{
Response.Write(node1.InnerXml + "," + node2.InnerXml);
}
}
catch
{ }
}
/// <summary>
/// 生成xml doc做为传送参数 里面可自行添加字段及数据
/// </summary>
/// <returns></returns>
public XmlDocument GetXmlData()
{
XmlDocument doc = new XmlDocument();
//加入XML的声明段落
XmlDeclaration declarationDoc = doc.CreateXmlDeclaration("1.0", "utf-8", "");
doc.AppendChild(declarationDoc);
//创建一个根元素
XmlElement root = doc.CreateElement("root");
XmlAttribute attr = doc.CreateAttribute("Type");
attr.InnerXml = "type";
root.Attributes.Append(attr);
//创建节点1
XmlNode ChildNode1 = doc.CreateNode(XmlNodeType.Element, "node1", "");
ChildNode1.InnerXml = "node1";
root.AppendChild(ChildNode1);
//创建节点2
XmlNode ChildNode2 = doc.CreateNode(XmlNodeType.Element, "node2", "");
ChildNode2.InnerXml = "node2";
root.AppendChild(ChildNode2);
doc.AppendChild(root);
//此处保存只是为了验证生成的xml是否正确,可以注释掉
string fileName = System.Guid.NewGuid().ToString()+".xml";
doc.Save(HttpContext.Current.Server.MapPath(@"./tmp\" + fileName));
return doc;
}
/// <summary>
/// WebHttpRequest 基础类 数据转换成utf-8编码以post发送给指定地址 传输的是xml格式
/// </summary>
/// <param name="webMethod">提交方式 POST,GET</param>
/// <param name="sURL">提交路径</param>
/// <param name="webPostData">参数字符串</param>
/// <returns>返回HTML代码</returns>
internal string WebHttpRequest(string webMethod, string sURL, string webPostData)
{
//将字符串转换成utf-8字节数组
byte[] sData = Encoding.UTF8.GetBytes(webPostData);
string fString = "";
#region "WEB实例初始化"
HttpWebRequest webRequest = null;
HttpWebResponse webResponse = null;
Uri webURL = new Uri(sURL);
Stream webStream = null;
StreamReader webReader = null;
#endregion
try
{
webRequest = (HttpWebRequest)WebRequest.Create(webURL);
webRequest.Method = webMethod;
webRequest.ContentType = "text/xml";
//"application/x-www-form-urlencoded";
webRequest.ContentLength = sData.Length;
//webRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1) Web-Sniffer/1.0.24";
try
{
webStream = webRequest.GetRequestStream();
webStream.Write(sData, 0, sData.Length);
webStream.Close();
}
catch (IOException ioEx)
{
throw ioEx;
}
finally
{
webStream.Close();
webStream.Dispose(); //清空实例
}
try
{
webResponse = (HttpWebResponse)webRequest.GetResponse();
webReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8);
fString = webReader.ReadToEnd();
return fString;
}
catch (IOException ioEx)
{
throw ioEx;
}
finally
{
webReader.Dispose();
}
}
catch (HttpListenerException httpEx)
{
throw httpEx;
}
finally
{
#region "清空实例对象"
webStream.Dispose();
webReader.Dispose();
#endregion
}
}
=========================================
=========接收数据并返回值xml=============
=========================================
==此处发送和接收到返回的xml格式用的是同一种,可以根据实际情况自行处理
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
XmlDocument doc = new XmlDocument();
try
{
StreamReader reader = new StreamReader(Request.InputStream,Encoding.UTF8);
String xml = reader.ReadToEnd();
doc.LoadXml(xml);
XmlNode node1 = doc.SelectSingleNode("/root/node1").InnerXml;
XmlNode node2 = doc.SelectSingleNode("/root/node2").InnerXml;
XmlDocument xd = GetXmlData();
byte[] tdata = Encoding.UTF8.GetBytes(xd.InnerXml);
Stream webStream = Response.OutputStream;
webStream.Write(tdata, 0, tdata.Length);
webStream.Close();
}
catch()
{}
}
}