如果有人不打电话给网络服务,将数据发布到网址的最佳方法是什么?

时间:2010-07-15 01:31:58

标签: xml vb.net web-services soap posting

好吧......我有点大问题......好吧,好吧...通常如果我理解得很好......网络服务的工作方式是我编写一种方法从数据库中获取一些数据然后一些其他用户/客户端添加一个引用并调用我的服务并获取数据...现在在我的情况下,我必须获取数据,并实际发布到用户/客户端的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然后将其发送到用户的网络服务网址....请帮帮我...

1 个答案:

答案 0 :(得分:1)

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

在.NET环境中,您可以使用visual studio或wsdl.exe

不要将原始数据发送到网址,也不要尝试手动解析响应,这太疯狂了。特别是使用这些复杂的基于SOAP的Web服务。