微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用组件与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所示。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐