c# webservice接口引用、HTTPPost调用以及XML解析(soap和非soap) |
您所在的位置:网站首页 › c调用webservice接口 › c# webservice接口引用、HTTPPost调用以及XML解析(soap和非soap) |
1.webservice接口获取wsdl文件,浏览器访问接口地址后加?wsdl将得到接口wsdl文件; 将wsdl文件放入本地iis某个网站下,程序中找到引用=》选择服务引用; 将网站的wsdl文件地址填入到服务引用地址栏,获取到将wsdl文件应用到程序,然后程序中调用即可 3.xml数据转化为对象;对象转为XML;request对象只生成一个SelfItemList节点 public class request { public SelfItemList SelfItemList{get;set;} } /// 只生成一个 SelfItemList节点 [XmlRoot("DocumentElement")] public class SelfItemList { [XmlElement("SelfItem")] public List SelfItem { get; set; } } /// /// 把对象转换成xml /// /// /// public static string serialize(object o) { var xml = ""; if (o == null) { return xml; } return serialize(o, o.GetType()); } /// /// 把对象转换成xml /// /// /// 指定对象类型 /// public static string serialize(object o, Type type) { var xml = ""; if (o == null) { return xml; } //序列化对象 XmlSerializer serializer = new XmlSerializer(type); // 输出 Stream stream = new MemoryStream(); serializer.Serialize(stream, o); stream.Position = 0; StreamReader sr = new StreamReader(stream); xml = sr.ReadToEnd(); sr.Dispose(); sr.Close(); stream.Dispose(); stream.Close(); return xml; } /// /// 反序化xml为对象 /// /// /// /// public static object deserialize(string xml, Type type) { try { using (StringReader sr = new StringReader(xml)) { XmlSerializer serializer = new XmlSerializer(type); return serializer.Deserialize(sr); } } catch (Exception e) { return null; } }4.获取到返回xml值,如果是soap接口 获取节点值如下;建议将命名空间去除!!;非soap接口参考第三点获取节点值 XmlDocument docnew = new XmlDocument(); docnew.LoadXml(res.Replace(" xmlns=\"http://tempuri.org/\"","")); XmlNode HIPMessageServerResult = docnew.DocumentElement["soap:Body"]["RequestSubmitNewResponse"]["RequestSubmitNewResult"];5.如果需要组装新的xml;可以将XmlNode的OuterXml重新加载为一个新xml文件;一定不要是InnerXml,因为这个会带命名空间,导致xml读取不出来! XmlDocument doc = new XmlDocument(); doc.LoadXml(HIPMessageServerResult.OuterXml); XmlElement root = doc.DocumentElement; XmlNode ResultCode = root.SelectSingleNode("Response/ResultCode"); string xmlcode = ResultCode.InnerText; var rootNode = root.SelectNodes("//PeItem"); foreach (XmlNode xxNode in rootNode) { var zhxmbh = xxNode.SelectSingleNode("ItemId").InnerText; } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |