1

好吧...我有一个很大的问题...好的,这里是...通常如果我理解得很好...Web服务的工作方式是我编写一种方法从数据库中获取一些数据,然后是一些其他用户/客户端添加了一个引用并调用我的服务并获取数据......现在在我的情况下,我必须获取数据并实际将其发布到 xml 中的用户/客户端(也许在肥皂中)我猜......所以这就是我要做的......

[Serializable]
public class MyClass
{  [SoapAttribute]
   public int id;
    [SoapIgnore]
        public int ToSkip;
} 

String XmlizedString = null; 
            MyClass obj= new MyClass ();
            MemoryStream memoryStream = new MemoryStream ( );
            XmlTypeMapping myMapping =
            (new SoapReflectionImporter().ImportTypeMapping
            (typeof(MyClass)));
            XmlSerializer xs = new XmlSerializer (myMapping);
            XmlTextWriter xmlTextWriter = new XmlTextWriter ( memoryStream, Encoding.UTF8 );

            xs.Serialize ( xmlTextWriter, obj );
            memoryStream = ( MemoryStream ) xmlTextWriter.BaseStream;
            XmlizedString = UTF8ByteArrayToString ( memoryStream.ToArray ( ) );
            using (System.Net.WebClient client = new System.Net.WebClient())      
           {
            // performs an HTTP POST
            status= client.UploadString("http:/somewebservice.com/" + webServiceName,                 XmlizedString); 
            }

所以基本上......我将它序列化为xml(和soap)并将其转换为字符串,然后将此字符串上传到Web服务url......我只想知道我所做的是否正确? ..我想基本上将数据转换为soap xml,然后将其发送到用户的网络服务网址..请帮帮我...

4

1 回答 1

1

这是基于 wsdl 的网络服务吗?如果是,那么只需使用您的 IDE 或某些工具来生成静态类型的客户端包装器。

在 .NET 环境中,您可以使用 Visual Studio 或wsdl.exe

不要将原始数据发送到 url,也不要尝试手动解析响应,这太疯狂了。尤其是对于这些复杂的基于 SOAP 的 Web 服务。

于 2010-07-15T01:49:29.623 回答