现在的位置: 首页 > 综合 > 正文

Javascript SoapClient 一个小小的封装 for 沪江网暑期实习申请

2012年04月17日 ⁄ 综合 ⁄ 共 1035字 ⁄ 字号 评论关闭

  做自己的js组件倒是没怎么想过,只是有时候为了方便,对一些第三方的库进行了封装,方便使用。比如:...

  ASP.Net利用WebService做Ajax交互,XML格式数据传输,采用Javascript SoapClient类库[http://www.guru4.net/articoli/javascript-soap-client/]。

  SoapClient能用SOAP协议进行通信,并对返回的XML结果集进行Object封装产生JS对象(不需要自己解析xml了)

  WebService

WS

public class Calc : System.Web.Services.WebService
{

[WebMethod]
public int Add(int l, int r)
{
return l + r;
}
[WebMethod]
public int Sub(int l, int r)
{
return l - r;
}
}

 

标准的JS调用代码:

  

SOAPClient

var p = new SOAPClientParameters();
p.add(
"l", 1);
p.add(
"r", 2);
SOAPClient.invoke(
"./Calc.asmx", "Add", p, true, callb);

var p1 = new SOAPClientParameters();
p1.add(
"l", 2);
p1.add(
"r", 1);
SOAPClient.invoke(
"./Calc.asmx", "Sub", p1, true, callb);

 

  对Paramaters进行JSON封装:

  

SoapInvoke

var SoapInvoke = function (url, method, p, async, callback) {
var sp = new SOAPClientParameters();
for (var key in p) {
sp.add(key, p[key]);
}
SOAPClient.invoke(url, method, sp, async, callback);
};

 

  比较方便的调用过程:

   

SoapInvoke("./Calc.asmx", "Add", { l: 1, r: 2 }, true, callb);
SoapInvoke(
"./Calc.asmx", "Sub", { l: 2, r: 1 }, true, callb);

  

  支持复杂数据类型。

 

  结束。 

  题外话:我是一个非常乐于动手实践的人,很多时候很多想法,自己觉得很好,就一定会付诸行动,努力将其实现。

抱歉!评论已关闭.