Lostinet作品:JScriptSoapClientv0.10Beta为你轻松调用WebService[1]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 lostinet 的 blog

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 对象。

本文关键:WebService,WebMethod,Soap
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top