lostinet作品:jscriptsoapclientv0.10beta为你轻松调用webservice
lostinet主站
http://lostinet.d2g.com/lostinet-publish/jscriptsoapclient/
做了一个webservice后,是不是很痛恨客户端没有安装soaptoolkit???
用这个jscript的实现版,为你轻松实现webservice的调用
/*
jscriptsoapclient for .net 0.10 beta
作者:迷失网络[lostinet]
为你的webservice提供简单易用的调用方案
暂时只支持 string,int,float,double,boolean 的传输
使用方法:
var wsdl=new jscriptsoapclient("http://host.com/webservice.asmx?wsdl");
var ws=wsdl.createwebservice("webservicename");
var res=ws.methodname(arg1,arg2);
alert(res);
alert(res.length);
alert(res.item(0)+res.item(1).value+res.item(2).type);
*/
------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------
说明
------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------
lostinet
jscriptsoapclient v0.10 beta 说明文档
copyright @2002 http://www.lostinet.com (lostinet),all right reserved.
[1.简介][2.兼容性][3.使用例子][4.对象模型参考][5.webservice分析过程][6.webmethod调用过程]
1。简介
jscriptsoapclient(以下称jssc)是一个用jscript实现的soap的客户端工具。 它为你提供一个简单有效的脚本编程方法来访问web中的webservice(针对microsoft.net的webservice)。在这个版本中,jssc提供了基本的访问方法,和对简单数据传输类型的支持。jssc支持多个参数的输入和多个参数的返回。
jssc的设计目标是,尽量使soap的[webmethod]被模拟成客户端的一个对象的成员函数。
[返回顶部]
2。兼容性
服务器端:
jssc的编写过程中是完全依照microsoft.net的webservice中的*.asmx文件而做的。在测试版中,不能保证对 .net webservice 有完整的支持。在以后发行的正式版中,也不能保证对非 .net webservice的实现有足够的支持。
jssc v0.10 beta 只支持对soaphttp http://schemas.xmlsoap.org/soap/http的绑定。只支持的数据类型:string,int,float,double,boolean。
在客户端:
jssc是针对microsof internet explorer而设计的。当然以后推出的正式版可以在wsh等脚本环境中使用。但是jssc仍然是被设计为针对microsoft internet explorer而实现。jssc需要microsoft.xmldom和microsoft.xmlhttp两个组件的支持(在windows98以后的版本就有)。
异步调用的支持:
jssc v0.10 beta 不支持异步调用。但以后的版本会提供这个功能。
[返回顶部]
3。使用例子
代码写法的简单例子:
下面的例子告诉你,用jssc调用webmethod有很强的灵活性。
<script language="jscriptsoapclient.js"></script>
<script>
//获取wsdl
var wsdl=new jscriptsoapclient("/webservice.asmx?wsdl");
//webservicename是[webservice]属性中定义的name
var ws=wsdl.createwebservice("webservicename");
//下面的add,joinstring,swapstring都是.net中的类的函数成员[webmethod]
alert(ws.add(33,44));//alert(77);
alert(ws.joinstring("hello","world"));//alert("helloworld");
//public void swapstring(string ina,string inb,out string outa,outstring outb)
//{
// outa=inb;
// outb=ina;
//}
var res=ws.swapstring("aa","bb");
alert(res);//alert(res.item(0))=>alert(res.item("outa"))=>alert("bb");
alert(res.item(1));//alert(res.item(1).value);
alert(res.item(1).type);//alert("string");//defined in /webservice.asmx?wsdl
</script>
[返回顶部]
4。对象模型参考
函数jscriptsoapclient(wsdlurl,username,password)
获取wsdlurl指定的wsdl xml的并且分析wsdl xml数据,返回jssc_wsdl对象
语法:
var wsdl=jscriptsoapclient(url[,password][,password]);
var wsdl=new jscriptsoapclient(url[,password][,password]);
wsdlurl:wsdl的位置,例如http://yourhost.com/ws.asmx?wsdl
[可选]username:登陆服务器的用户名字
[可选]password:登陆服务器的密码
返回值:
一个jssc_wsdl对象。使用该对象创建jssc_ws对象
说明:
如果获取wsdl时发生错误,那么就会发出异常。这个需要向服务器取wsdl xml,所以时间会根据网络而定。jssc v0.10 beta 没有异步创建的功能。
对象jssc_wsdl
来自:(请见5.webservice分析过程)
jscriptsoapclient(url[,password][,password]);
new jscriptsoapclient(url[,password][,password]);
内部成员
_url 调用jscriptsoapclient时保留的参数
_username 调用jscriptsoapclient时保留的参数
_password 调用jscriptsoapclient时保留的参数
[调试]_xd 调用jscriptsoapclient时生成的microsoft.xmldom对象,包含wsdl的内容
_collns namespace的集合
_collpf 在wsdl中namespace对应的prefix
属性
collwebserviceinfo [jssc_infocollection],包含了jssc_webserviceinfo的集合
方法
jssc_webservice createwebservice(name)
根据name生成jssc_webservice对象
语法:
var ws=jsscwsdlobj.createwebservice("webservicename");
参数:
name wsdl中的//definitions/service/@name。
返回值:
jssc_webservice 对象。