XML模板
XMLModel.xml
<?xml version="1.0" encoding="GBK"?> <stream> <B2CCERTNO>500001</B2CCERTNO> <ORDERMODE>01</ORDERMODE> <ORDERDATE></ORDERDATE> <ORDERTIME></ORDERTIME> <ORDERNO></ORDERNO> <CURRID>01</CURRID> <ORDERAMT></ORDERAMT> <MEMO>充值支付</MEMO> <NOTIFYMODE>01</NOTIFYMODE> <NOTIFYURL>https://abc.com/notify</NOTIFYURL> <RISKLEVEL>00</RISKLEVEL> <SUPPTCARDTYPE>00</SUPPTCARDTYPE> <TTL></TTL> <MEMBERID></MEMBERID> <NOTIFYSCOPE></NOTIFYSCOPE> <ISSAFEINF></ISSAFEINF> <REFERER></REFERER> <list name="OrderListQue"> <row> <PRODUCTNAME></PRODUCTNAME> <PRODUCTCODE></PRODUCTCODE> <QUANTITY></QUANTITY> <SUBTOTAL></SUBTOTAL> <TERM></TERM> <NOTE></NOTE> </row> </list> </stream>
主程序
/// <summary> /// 获取提交参数、XML模板、提交到银行 /// </summary> public void SubXmlPost(string OrderNo,string OrderRamt) { //获取XML模板 XmlDataDocument xmlDoc = new XmlDataDocument(); xmlDoc.Load(Server.MapPath("XMLModel.xml")); //修正XML信息 XmlNodeList nodeList = xmlDoc.SelectSingleNode("stream").ChildNodes;//获取stream节点下的所有子节点 foreach(XmlNode xn in nodeList) { XmlElement xe = (XmlElement)xn; //填充订单日期 if (xe.Name == "ORDERDATE") { xe.InnerText = DateTime.Now.ToString("yyyy-MM-dd"); } //填充订单时间 if (xe.Name == "ORDERTIME") { xe.InnerText = DateTime.Now.ToString("hh:mm:ss"); } //订单编号 if (xe.Name == "ORDERNO") { xe.InnerText = OrderNo.ToString(); } //订单金额 if (xe.Name == "ORDERAMT") { xe.InnerText = OrderRamt.ToString(); } } //发送到银行 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://ec.test.bank.ecitic.com/pec/e3rdplaceorder.do"); req.Method = "POST"; //设置 Content-type HTTP 标头的值 //req.ContentType = "text/xml";// "application/x-www-form-urlencoded;charset=gb2312"; using (StreamWriter SubWri = new StreamWriter(req.GetRequestStream())) { StreamReader reader = new StreamReader(xmlDoc); string ret = xmlDoc. //这里就有问题了,xmlDoc是一个XmlDataDocument,我要怎么把一个XmlDataDocument直接通过POST的方式传输出去? //我本来想把xmlDoc放到StreamReader里面然后在变成string,再通过WriteLine出去,然是放不进去,希望指教 SubWri.WriteLine(ret); } }
这里就有问题了,xmlDoc是一个XmlDataDocument,我要怎么把一个XmlDataDocument直接通过POST的方式传输出去?
我本来想把xmlDoc放到StreamReader里面然后在变成string,再通过WriteLine出去,然是放不进去,希望指教
http://msdn.microsoft.com/zh-cn/library/system.xml.xmldocument.writeto(v=vs.80).aspx
注意创建 XmlTextWriter 时指定的 Encoding 一定要同 Request 的 Content-type 一样,最好都为 UTF-8 。
Post提交到特定的地址,应该不是要你直接把xml提交吧, 而是把xml中的数据提交就行了。
转换为字符串,然后通过body进行post
路过学习