flex 封装webervice
package myComponets
{
import mx.rpc.AbstractOperation;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.soap.SOAPFault;
import mx.rpc.soap.SOAPHeader;
import mx.rpc.soap.WebService;
import mx.managers.CursorManager;
public class MyWebservice extends WebService
{
private var _callBackHandler:Function;
private var _faultHandle:Function;
private var _args:Array;
private var ws:WebService;
private var wsUrl:String="http://ws.huaien.com/MenuServices.asmx?WSDL";
public function MyWebservice(url:String)
{
super();
this.wsdl=url||wsUrl
this.loadWSDL();
}
public function set callBackHandler(callBackHandler:Function):void{
this._callBackHandler=callBackHandler;
}
public function get callBackHandler():Function{
return this._callBackHandler;
}
public function set args(args:Array):void{
this._args =args;
}
public function get args():Array{
return this._args;
}
public function set faultHandler(faultHandler:Function):void{
this._faultHandle=faultHandler;
}
public function get faultHandler():Function{
return this.faultHandler;
}
public function initHeader(header:SOAPHeader):void{
this.clearHeaders();
this.addHeader(header);
}
public function sendOperation(SX:String):void{
//根据方法名动态调用WebService服务器的方法
var operation:AbstractOperation = this.getOperation(SX);
//为调用的方法添加监听器,回调函数由外部动态传入
operation.addEventListener(ResultEvent.RESULT, this.callBackHandler);
//为调用的方法添加错误监听器,如果传入的错误处理方法为空,则调用默认的处理方法
if(this.faultHandler!=null){
operation.addEventListener(FaultEvent.FAULT, this.faultHandler);
}else{
operation.addEventListener(FaultEvent.FAULT,defaultFaultHandler);
}
//为调用的方法某参数,参数类型为Array
operation.arguments=this._args;
//执行调用的方法
operation.send();
}
private function defaultFaultHandler(event:FaultEvent):void{
CursorManager.removeBusyCursor();
}
}
}
这个好像只能传一个SX方法这里我该怎么考虑,要是我.net后台web服务封装了很多方法,而且可能请求的参数并只是一个呢,
我该怎么考虑 qq 342563828 这个类里面的文件我该怎么去修改呢。
[解决办法]
这不是很明显吗this._args这是参数列表啊。想传几个就传几个,我不知道你想要干什么,SX不是随便一个方法名么,想说清楚的话联系我qq348475359,注明来意