使用组件与WebService程序交互
如何使用<mx:WebService>组件<mx:WebService>组件的使用方法与<mx:HTTPService>组件的使用方法大同小异。最主要的区别在于参数的传递方式。<mx:WebService>组件中传递参数的语法如下所示。 <mx:WebService id=" WebService组件id" ??? wsdl="WebService地址"> ??? <mx:operation name="方法名"> ??????? <mx:request> ??????????? <参数名1>值1</参数名1> ??????????? <参数名2>值2</参数名2> ??????????? … ??????? </mx:request> ??? </mx:operation> </mx:WebService> (16)?????? <mx:operation>组件表示WebService的一个方法,必须与WebService中的定义名称相同。 (17)?????? <mx:request>组件存储参数,参数值以标签形式存储。需要注意的是参数的名称及顺序必须与WebService中的定义相同。 以下代码定义了一个<mx:WebService>组件。<mx:WebService>组件中包含带参的getMostPopularPosts方法。 <mx:WebService id="wsBlogAggr" ??? wsdl="http://weblogs.macromedia.com/mxna/webservices/mxna2.cfc?wsdl" ??? useProxy="false"> ??? <mx:operation name="getMostPopularPosts"> ??????? <mx:request> ??????????? <daysBack>30</daysBack> ??????????? <limit>{cbxNumPosts.value}</limit> ??????? </mx:request> ??? </mx:operation> </mx:WebService> 本程序中limit参数值是动态的,绑定于下拉框组件cbxNumPosts上。 <mx:WebService>组件的方法也可不显性表示参数,只需调用方法时指明即可。 以下代码中<mx:WebService>组件不显性定义参数。 wsBlogAggr.getMostPopularPosts(30,cbxNumPosts.value).send(); … <mx:WebService id="wsBlogAggr" ??? wsdl="http://weblogs.macromedia.com/mxna/webservices/mxna2.cfc?wsdl" ??? useProxy="false"> ??? <mx:operation name="getMostPopularPosts"/> </mx:WebService> 调用<mx:Webservice>组件中的方法的语法如下所示。 WebService变量.方法.send(); 以下代码调用getMostPopularPosts方法。 wsBlogAggr.getMostPopularPosts.send(); <mx:operation>组件中的result事件用以处理返回数据。使用方法与<mx:HTTPService>组件相同。 以下代码调用地址为“http://www.wopos.com/webservice/Stock.asmx”的WebService服务并显示结果。 <?xml version="1.0" encoding="GB2312"?> <mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"fontSize="13"creationComplete="wsStock.HelloWopos.send();"> ??? <mx:Script> ??????? <![CDATA[ ??????????? import mx.rpc.events.ResultEvent;?????????? //引用ResultEvent类 ??????????? import mx.controls.Alert;?????????????????? //引用Alert类 ??????????? //HelloWopos方法返回数据时的处理函数 ??????????? private function wsHandle(e:ResultEvent):void ??????????? { ??????????????? lbl.text=e.result as String;??????????? //显示返回数据 ??????????? } ??????? ]]> ??? </mx:Script> ??? <mx:Panel title="使用WebService交互" horizontalAlign="center" verticalAlign="middle" width="398" height="138"> ??????? <mx:Label id="lbl" textAlign="center" width="378" height="24"/> ??? </mx:Panel> ??? <mx:WebService id="wsStock" showBusyCursor="true" ??????? wsdl="http://www.wopos.com/webservice/Stock.asmx?wsdl" ??????? fault="Alert.show(event.fault.faultString,'Error')"> ??????? <mx:operation name="HelloWopos" result="wsHandle(event);"/> ??? ?</mx:WebService> </mx:Application> 本程序在creationComplete事件,即初始化事件时调用WebService的方法。结果显示于Label组件上。 程序的运行效果如图21-14所示。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |