51Testing软件测试论坛

标题: 求VBS调用Webservice接口的代码,谢谢! [打印本页]

作者: tanky    时间: 2012-11-21 09:58
标题: 求VBS调用Webservice接口的代码,谢谢!
本帖最后由 tanky 于 2012-11-21 10:56 编辑

先分享一段代码:Set osoap=CreateObject("MSSOAP.SoapClient")
oSoap.ClientProperty("ServerHTTPRequest") = True
oSoap.mssoapinit("http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl")
set result=oSoap.Translator("test")
msgbox result(1).Text


我本机测试成功,需要安装msSoapToolkit20.exe。
问题是同样的代码调用公司内部一个java实现的Webservice接口(入参是XML),会报错:no SOAPAction header!
求帮助...
作者: tanky    时间: 2012-11-21 10:57
不用MSSOAP也行,有其他方式实现的代码吗?
作者: jack_loo    时间: 2012-11-21 15:55
QTP中的CreateObject方法是继承的VBScript语言中的CreateObject方法,能调用外部的ActiveX服务。所以要求必须是com组件,一个java编写的service,不可能是com组件,也就不可能通过CreateObject调用。
作者: tanky    时间: 2012-11-21 16:14
QTP中的CreateObject方法是继承的VBScript语言中的CreateObject方法,能调用外部的ActiveX服务。所以要求必 ...
jack_loo 发表于 2012-11-21 15:55



    那有什么别的方案没?
作者: jack_loo    时间: 2012-11-21 16:49
java写的东西都是可以通过vbs文件启动的,QTP可以直接执行VBS文件。executefile
作者: tanky    时间: 2012-11-22 09:14
java写的东西都是可以通过vbs文件启动的,QTP可以直接执行VBS文件。executefile
jack_loo 发表于 2012-11-21 16:49



    我在QTP10上装了9.2的Webservice插件,程序菜单里面多了一个Microsoft SOAP Toolkit Version 3。所以QTP去访问Webservice接口应该用的就是MSSoap。我前面的代码也是用的这个。可能是我写法上面有问题,导致调取失败。而通过插件去调取同样的接口又是成功的。
作者: 泰然    时间: 2012-11-22 10:05
本帖最后由 泰然 于 2012-11-22 10:14 编辑

哦。是我理解错你的意思了,我以为你们公司用java做了一个代替msSoapToolkit20.exe功能的产品,你想用那个产品来远程调用webservice呢。那是不能通过CreateObject的。


通过msSoap远程调用,有时需要设置调用参数,你也说了是个xml。
oSoap.ConnectorProperty(具体输入参数名) = 输入参数,具体名称和内容需要向开发人员了解一下。

还有,Translator这个方法是访问这个SOAP“oSoap.mssoapinit("http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl")”中提供的方法,当你远程调用那个java写的webservice时,你需要使用那个soap中提供的方法,至于那个soap提供了哪些方法,看开发提供的接口设计文档。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2