vb6调用webService时包含有自定义类的问题
最近一个项目中,合作方提供了webService接口。但在vb6中调用时遇到了些问题。
主要是其提供的接口的参数中用到了自定义的一个类,为了在vb6中建立相应的类的映射,按照网上一篇文章(http://www.cnblogs.com/wuhuacong/archive/2007/01/29/634003.html),用Microsoft Office XP Web Services Toolkit 2.0创建了代理类,然后导入到vb6中。
但是在调用sc_xxxxService.MSSoapInit2 c_WSDL_URL, str_WSML, c_SERVICE, c_PORT, c_SERVICE_NAMESPACE时出错。
如果mssoapInit2的参数中除第一个以外,全部留空,可以连接上,并可以调用接口中的一些很简单数据类型的方法,即不能用到自定义类型。
到底该怎样做才能正常调用包含自定义类的WebService呢。
ps.经测试,在C#中是可以调用的。接口应该没问题吧。
[解决办法]
在vba中创建的映射类中,如果有Variant类型,就要小心了,有可能有更好的数据类型与webservice接口原型相匹配。
曾遇到过webservice中定义的是decimal类型,Vba中映射为variant,结果运行时出现类似错误。
其实decimal与double挺相近的,所以我就把variant换成double就OK了。
[解决办法]
这种事情,最合适的方式是让对方提供VB的接收示例,除非对方明确告知用VB无法接收(这样的话,你就不必硬用VB忙活了),否则就需要有实际可运行无误的示例作为对方所提供内容正确无误的证明。
合作就是合作,不能自己浪费时间硬抠。
[解决办法]
让对方提供VB的接收示例
[解决办法]
webservice是基于xml的,所以我觉得vb6应该是可以解决这个问题的,空下来试试....
[解决办法]
尝试了一下用post,备忘在:
http://blog.csdn.net/vbman2003/article/details/6608270