.net post xml 数据

var request = WebRequest.Create(url);//url 是post 接口的URL
request.Method = "post";// 请求方法
request.ContentType = "text/xml"; //请求类型
request.Headers.Add("charset:utf-8"); //设置文档类型的编码格式
var encoding = Encoding.GetEncoding("utf-8");
if (data != null)
{
byte[] buffer = encoding.GetBytes(data); //data 要传输的 数据 ,要POST的数据

如:

StringBuilder  data=new StringBuilder(); 

data.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");

data.Append("<aa>你的xml内容</aa>");

data.Append("<bb>你的xml内容</bb>");

data.Append("<cc>你的xml内容</cc>");

......................

data.ToString();此时的data就是传输来的数据;

request.ContentLength = buffer.Length;//HTTP消息实体的传输长度
request.GetRequestStream().Write(buffer, 0, buffer.Length);//要传输的数据
HttpWebResponse myResponse = request.GetResponse() as HttpWebResponse;// 获取来自internet的响应
string contentType = request.Headers[HttpRequestHeader.ContentType];
StreamReader reader = null;
reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd();//读取返回的数据
XmlDocument strcontent = new XmlDocument();
strcontent.LoadXml(content);//将接受到的返回的数据转为xml数据
XmlElement xe = strcontent.DocumentElement;
//判断是否推送成功;
if (content.Contains("false"))//此部分可根据返回来的数据来判读,本例中中返回的数据包含false 因此这样写
{
XmlNode CONNUMB = xe.SelectSingleNode("//" + "Error");//取xml 具体的节点
info.Msg = CONNUMB.InnerText.ToString(); 接受错误信息
}
if (content.Contains("true"))此部分可根据返回来的数据来判读,本例中中返回的数据包含true 因此这样写
{
XmlNode Corpbillid = xe.SelectSingleNode("//" + "corpbillid");//取xml 具体的节点

//请求返回成功写自己的逻辑

//
}
reader.Close();
myResponse.Close();
}

posted @ 2016-12-21 14:31  BINCHI  阅读(463)  评论(0编辑  收藏  举报