将XML文档作为参数传递给C#中的Web服务

我必须将XML文档作为参数发送,以使用Post方法从Service请求WebRequest。

任何人都可以帮助解决如何将XML文档作为参数发送,或者如何使字符串中的整个文档像文档一样传递。

如果要使用命名表单参数POST您的Xml数据,您需要执行以下操作:

 HttpWebRequest request = HttpWebRequest.Create("http://yourdomain.com/whatever") as HttpWebRequest; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; Encoding e = Encoding.GetEncoding("iso-8859-1"); XmlDocument doc = new XmlDocument(); doc.LoadXml("baz"); string rawXml = doc.OuterXml; // you need to encode your Xml before you assign it to your parameter // the POST parameter name is myxmldata string requestText = string.Format("myxmldata={0}", HttpUtility.UrlEncode(rawXml, e)); Stream requestStream = request.GetRequestStream(); StreamWriter requestWriter = new StreamWriter(requestStream, e); requestWriter.Write(requestText); requestWriter.Close(); 

阅读本文解释XML文档和Web服务将XML文档作为参数传递给Web服务

  [WebMethod] public System.Xml.XmlDocument SampelXmlMethod( System.Xml.XmlDocument xmldoc) string xmldata = "" + "" + "Andrew" + "Fuller" + "2/19/1952" + "" + ""; //Load xmldata into XmlDocument Object System.Xml.XmlDocument SendingXmlDoc = new System.Xml.XmlDocument(); SendingXmlDoc.LoadXml(xmldata); //Call web service and get xmldocument back System.Xml.XmlDocument ReceivingXmlDoc = new System.Xml.XmlDocument(); XmlService ser = new XmlService(); //Your web srevice.. ReceivingXmlDoc = ser.SampelXmlMethod(SendingXmlDoc);