根据网上搜来的资料,MS有个组件可以用来支撑VB6访问SOAP接口。
于是下载了个msSoapToolkit.exe安装后试了下,发现确实可以访问用C#或者VB.net写的webservice。
但是如果接口是使用其他语言编写的,则会出现各种莫名错误,像什么参数类型不正确,或者初始化失败(应该是解析WSDL报文的时候造成的)。
不管怎样,总归是为VB6提供了一种访问webservice的方式,虽然鸡肋。
如果你不嫌麻烦的话,可以自己构造一个HTTP对象,然后解析接口的XML报文。这样的话,基本上任何语言编写的webservice你都可以通过VB6调用。
'使用之前请先引用"Microsoft Soap Type Library (v3.0)"
'code by lichmama from cnblogs.com
Private Sub Form_Load()
Dim objSC As New SoapClient30
Dim ret As Variant 'initialize soap
Call objSC.MSSoapInit("http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl") 'using the method of webservice
ret = objSC.getRegionCountry() Debug.Print "ReturnType: " & TypeName(ret)
For Each r In ret
Debug.Print r
Next Set objSC = Nothing
End Sub
ReturnType: String()
阿尔及利亚,
阿根廷,
阿曼,
阿塞拜疆,
埃及,
埃塞俄比亚,
爱尔兰,
...