vs
生成soap文件,实际就是生成XML文件,我们可以用XMLTextWriter来写,也可以用XML序列化来生成。用VS新建一个工程,然后在代码中定义一个xmlWriter var ms = new MemoryStream(1024);//分配空间 XmlTextWriter Xmltr = new XmlTextWriter(ms, Encoding.UTF8);
然后接下来就可以用XMLWriter向里面写入内容了 Xmltr.WriteStartElement('soap', 'Envelope', 'http://schemas.xmlsoap.org/soap/envelope/'); Xmltr.WriteAttributeString('xmlns', 'xsi', null, 'http://www.w3.org/2001/XMLSchema-instance'); Xmltr.WriteAttributeString('xmlns', 'xsd', null, 'http://www.w3.org/2001/XMLSchema'); Xmltr.WriteAttributeString('xmlns', 'soap', null, 'http://schemas.xmlsoap.org/soap/envelope/'); Xmltr.WriteStartElement('Header', 'http://schemas.xmlsoap.org/soap/envelope/'); Xmltr.WriteStartElement(null, 'AuthInfo', 'http://xxxxx.com/'); Xmltr.WriteElementString('UserName', 'my'); Xmltr.WriteElementString('PassWord', 'ps'); Xmltr.WriteEndElement(); Xmltr.WriteEndElement(); Xmltr.WriteStartElement('Body', 'http://schemas.xmlsoap.org/soap/envelope/'); Xmltr.WriteStartElement(null, 'GetLevel', 'http://xxxx.com/'); Xmltr.WriteElementString('level', '0'); Xmltr.WriteEndElement(); Xmltr.WriteEndElement(); Xmltr.WriteEndDocument();
最后写入文件,得到文件内容,注意是要把内容写入到文件中还是写入到内存中。
实际上就是xml的生成问题,如果参数内容比较多的话,建议用XML的序列化来完成。
注意写入文件时要调用最后两句。