VB6之SOAP

根据网上搜来的资料,MS有个组件可以用来支撑VB6访问SOAP接口。

于是下载了个msSoapToolkit.exe安装后试了下,发现确实可以访问用C#或者VB.net写的webservice。

但是如果接口是使用其他语言编写的,则会出现各种莫名错误,像什么参数类型不正确,或者初始化失败(应该是解析WSDL报文的时候造成的)。

不管怎样,总归是为VB6提供了一种访问webservice的方式,虽然鸡肋。

如果你不嫌麻烦的话,可以自己构造一个HTTP对象,然后解析接口的XML报文。这样的话,基本上任何语言编写的webservice你都可以通过VB6调用。

 1 '使用之前请先引用"Microsoft Soap Type Library (v3.0)"
 2 'code by lichmama from cnblogs.com
 3 Private Sub Form_Load()
 4     Dim objSC As New SoapClient30
 5     Dim ret As Variant
 6     
 7     'initialize soap
 8     Call objSC.MSSoapInit("http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl")
 9     
10     'using the method of webservice
11     ret = objSC.getRegionCountry()
12     
13     Debug.Print "ReturnType: " & TypeName(ret)
14     For Each r In ret
15         Debug.Print r
16     Next
17     
18     Set objSC = Nothing
19 End Sub
ReturnType: String()
阿尔及利亚,3320
阿根廷,3522
阿曼,3170
阿塞拜疆,3176
埃及,3317
埃塞俄比亚,3314
爱尔兰,3246
...