论坛首页 编程语言技术论坛

flex WebService, AsyncToken用法

浏览 4571 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-06-18   最后修改:2011-06-18
进入主题先了解下wsdl文档提供的信息,在日常开发中,不可能手工分析wsdl的文档信息,绝大多数发完Web服务的组织都会提一份文档,描述需要发送的参数和将要收到内容,还会告诉使用者可以调用那些方法在flex开发总继承web服务很简单往往需要几行代码....但无论是那种方式都要配置发送的参数和处理要返回值的方法...这就需要我们略懂一些wsdl的文档中到底定义的那些内容,已定义的方法,可参数尤其是参数在flex定义中要用的
flex WebService 使用
flex WebService AsyncToken使用

flex WebService 使用
先过一遍wsdl提供的信息:


按照上图提示一步一步向上看
wsdl的文档详细讲解参见:
http://daoexception.iteye.com/blog/510122
1.flex mxml中使用webService



1.flex ActionScript中使用webService




flex WebService AsyncToken使用
Responder () 构造函数

public function Responder(result:Function, fault:Function)

使用指定的处理函数构造 responder 的实例。

参数  result:Function — 成功完成请求时应调用的函数。 
 
fault:Function — 请求完成但出错时应调用的函数。 

使用时:token.addResponder(myResponder);

 <mx:Script>
    	<![CDATA[
			import mx.rpc.AsyncToken;
			import mx.rpc.Responder;
    		import mx.rpc.events.ResultEvent;
    		import mx.rpc.soap.LoadEvent;
    		import mx.rpc.AbstractOperation;
    		import mx.rpc.soap.WebService;
    		import mx.rpc.events.FaultEvent;
    		import mx.controls.Alert;
    		import mx.rpc.soap.WebService;
    		private var ws:WebService;
			private var responder:mx.rpc.Responder;
    		private var wsdl:String="http://localhost:8989/WebServiceDemo/services/WebServiceDemo?wsdl";
    		private function initFunc():void
    		{
    			ws=new WebService();
    			ws.wsdl = wsdl;
    			ws.requestTimeout = 300;
    			if (ws.canLoadWSDL())	{
					ws.loadWSDL();
				}
				var token:AsyncToken = ws.example(txtWord.text,null);
				var da:mx.rpc.Responder=new mx.rpc.Responder(Response_Result, Response_Fault);
					/**
				 * var da:mx.rpc.Responder=new mx.rpc.Responder 当你读到这块时会认为
				 * 	new mx.rpc.Responder 是个多余的写法 简写成 var ...=new Responder...
				 * 可是在flah.net.Responder 也有同样的类名而且是默认导入的....只能这样声明
				 * 不信可以试var da:mx.rpc.Responder=new Responder(Response_Result, Response_Fault);
				 * 当光标放在 new Responder 提示的类型却是 flash.net.Responder....
				 **/
				token.otherMessage = "myTestMethod Failed";//添加自定义属性
				token.addResponder(da);
    		}
    		private function Response_Result(e:ResultEvent):void{
				var resultStr:String;
				var otherMessage:String;
				ws.getOperation("example");//webservie有多个方法时时根据 getOperation()中的name参数获取对应的方法
				resultStr=e.token.result.toString();// token result 
				txtResult.text=resultStr;
				otherMessage=e.token.otherMessage;//获取自定义属性
				Alert.show("Web Service AsyncToken result "+otherMessage,"success");
			}
			
			private function Response_Fault(e:FaultEvent):void
    		{
    			Alert.show(e.fault.message,"Web Service  Response Error");
    		}
    	]]>
    </mx:Script>





详细参见代码:有wsdl方便测试
  • 大小: 157 KB
  • 大小: 62 KB
  • 大小: 83.1 KB
  • 大小: 152.8 KB
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics