flash cs3访问WebService类包下载(as3)
- 2022-02-22
- 来源/作者: PS123.NET收集 / 佚名
- 3 次浏览
在3个月多前就写了 想封装as3(flash cs3)的soap(Web Services)调用功能 ,当时想找人一起写,后来一直没有人参与,再后来自己也忙的一塌糊涂,所以把进度给耽误了,一直的一点一点的磨到现在,也只是访问.net的webservice包装(主要是没有用过其他语言编写的webservice,希望有朋友提供一些,或者自己去封装一下).
下载地址:http://www.roading.net/as3/ws.rar(包括源代码和测试文件)
主要功能有:
*函数列表以及对于参数列表的解析.
*访问队列
*提交数据格式的自动生成.
*参数长度和类型的判断
*错误状态的捕获
*返回数据的解析(得到object/array格式数据,参考:AS3:转换XML到Object----XMLToObject)
测试代码:
程序代码
import net.roading.net.WebService;
//
import flash.events.EventDispatcher;
//
var ws:WebService = new WebService("http://www.roading.net/WebService/test.asmx");
//var ws:WebService = new WebService("http://www.wapit.cn/WebServices/Weather.asmx");
//var ws:WebService = new WebService("http://webservice.k-zone.cn/URLToHtmlService/URLToHtmlService.asmx");
ws.onLoad = function(e)
{
trace(this.getWsInfo());
}
ws.onError = function(e)
{
trace(e.toString());
}
//
var sr:EventDispatcher = ws.call("getAge",'122',123);
sr.addEventListener("complete", completeHandler);
sr.addEventListener("error", errorHandler);
function errorHandler(e)
{
trace('error');
for(var i in e.info)
trace(i,"=======",e.info[i]);
}
function completeHandler(e)
{
trace("-------------------------");
trace("getAge result:");
trace(e.xml);
trace(e.data);
}
//
var sr1:EventDispatcher = ws.call("getTime");
sr1.addEventListener("complete", sr1completeHandler);
function sr1completeHandler(e)
{
trace("-------------------------");
trace("getTime result:");
trace(e.xml);
trace(e.data);
}
//
var sr2:EventDispatcher = ws.call("say","i am roading","aha");
sr2.addEventListener("complete", sr2completeHandler);
function sr2completeHandler(e)
{
trace("-------------------------");
trace("say result:");
trace(e.xml);
trace(e.data);
}
状态以及结果:
程序代码
/*********************************************************/
webservice的方法列表如下:
method name: getTime
method name: say args: {(name:str,type:'s:string') }
method name: HelloWorld
/*********************************************************/
error
target ======= [object WebService]
level ======= WebService.Call.MethodNameNotFound
code ======= 找不到调用方法
Warning: 参数长度不匹配!
-------------------------
getTime result:
<Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Body>
<getTimeResponse xmlns="http://www.roading.net/">
<getTimeResult>2007-10-31T23:09:31.4702500+08:00</getTimeResult>
</getTimeResponse>
</Body>
<ignoreWhitespace>true</ignoreWhitespace>
</Envelope>
2007-10-31T23:09:31.4702500+08:00
-------------------------
say result:
<Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Body>
<sayResponse xmlns="http://www.roading.net/">
<sayResult>you say:"i am roading"</sayResult>
</sayResponse>
</Body>
<ignoreWhitespace>true</ignoreWhitespace>
</Envelope>
you say:"i am roading"