Flex请求webservice
发布时间:2020-12-15 03:49:54 所属栏目:百科 来源:网络整理
导读:flex除了可以和spring整合之外,有时也会使用flex去访问webservice,flex提供了访问webservice的一套方法使用起来也是特别的简单。下面分享我的学习成果 1.寻找用于测试的webservice服务 http://www.webxml.com.cn/zh_cn/index.aspx 这个网站提供了许多webse
flex除了可以和spring整合之外,有时也会使用flex去访问webservice,flex提供了访问webservice的一套方法使用起来也是特别的简单。下面分享我的学习成果 1.寻找用于测试的webservice服务 http://www.webxml.com.cn/zh_cn/index.aspx 这个网站提供了许多webservice,可以供我们学习和使用 2.开始使用flex请求webservice,这里就使用号码归属地和天气预报作为例子 (1)使用flex标签载入wsdl <s:WebService wsdl="http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl" id="webservice"> <s:operation name="getMobileCodeInfo" result="getMessage(event)" fault="onFault(event)"/> </s:WebService> <s:WebService wsdl="http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl" id="webservice2" > <s:operation name="getWeather" result="getWeatherResult(event)" resultFormat="object" fault="onFault(event)"/> </s:WebService> wsdl就是web服务的wsdl地址,id一定要写上方便后面使用,operation里的name就是webservice暴露出来的方法,result则是回调函数,fault表示出现错误后的函数调用,这个不配置也OK (2) 调用手机号码归属地服务 webservice.getOperation("getMobileCodeInfo").send(number.text); webservice是第一个标签的id,表示我们要使用里面的服务,getOperation的参数就是要调用方法名称,send里面是我们要提供给服务器的参数 (3)使用回调函数处理webservice返回结果 var ss:String=event.result as String; Alert.show(ss); 天气预报服务也是如此,但是要注意的是天气预报服务返回的是一个一维数组 天气预报返回结果如下: 下面是全部的代码: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Declarations> <!-- Place non-visual elements (e.g.,services,value objects) here --> <s:WebService wsdl="http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl" id="webservice"> <s:operation name="getMobileCodeInfo" result="getMessage(event)" fault="onFault(event)"/> </s:WebService> <s:WebService wsdl="http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl" id="webservice2" > <s:operation name="getWeather" result="getWeatherResult(event)" resultFormat="object" fault="onFault(event)"/> </s:WebService> </fx:Declarations> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.rpc.events.ResultEvent; import mx.events.CloseEvent; public function getMessage(event:ResultEvent){ var ss:String=event.result as String; Alert.show(ss); } public function getWeatherResult(event2:ResultEvent):void{ var ss2:ArrayCollection=ArrayCollection(event2.result); Alert.show(ss2[1]+"n"+ss2[4]+"n"+ss2[5]); } public function invokeWebservice(event:Event){ webservice.getOperation("getMobileCodeInfo").send(number.text); } public function invokeWebservice2(event:Event){ webservice2.getOperation("getWeather").send(city.text,''); } public function onFault(event:Event):void{ Alert.show("访问错误"); } /*public function show(event:Event):void{ Alert.yesLabel = '是'; Alert.noLabel = '否'; Alert.cancelLabel = '取消'; Alert.show('确认操作无误吗','确认?',1|2|8,this,back); } public function back(event:CloseEvent):void{ if(event.detail==Alert.YES){ Alert.show("你选择了是"); }else if(event.detail==Alert.NO){ Alert.show("你选择了否"); }else{ Alert.show("你选择了取消"); } }*/ ]]> </fx:Script> <s:VGroup> <s:HGroup paddingTop="30" verticalAlign="middle"> <s:Label text="输入你的电话号码"/> <s:TextInput id="number"/> <s:Button label="获取号码归属地" click="invokeWebservice(event)"/> </s:HGroup> <s:HGroup paddingTop="30" verticalAlign="middle"> <s:Label text="输入城市名称"/> <s:TextInput id="city"/> <s:Button label="获取天气" click="invokeWebservice2(event)"/> </s:HGroup> <!-- <s:HGroup paddingTop="30" verticalAlign="middle"> <s:Button label="显示确认框" click="show(event)"/> </s:HGroup> --> </s:VGroup> </s:Application> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |