`
isiqi
  • 浏览: 16858100 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex与.NET互操作(二):基于WebService的数据访问(上)

阅读更多

Flex提供了<mx:WebService>、<mx:HTTPService>和<mx:RemoteObject>标签来直接访问远程数据,这用于与各种不同语言环境开发提供的远程服务端数据源(如WebService)进行数据交互通信显得更加容易.

本文以.NET平台下C#语言开发的WebService作为远程数据源,详细介绍Flex与.NET的WebService的数据通信知识点;包括连接WebService,远程调用WebService方法,给WebService方法传递参数等相关知识点。三个标签的使用方法基本上是一样,这里就以<mx:WebService>标签为例进行介绍。

首先看看如下代码块:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1<mx:WebServiceid="dataService"
2wsdl="http://localhost/FlashFlex/DataWebService.asmx?wsdl"
3useProxy="false">
4<mx:operationname="HelloWorld"result="onSuccess(event)"fault="onFault(event)"/>
5<mx:operationname="GetBook"fault="onFault(event)"result="onObjectSuccess(event)"/>
6</mx:WebService>

wsdl属性指定到要访问的WebService的wsdl地址既可,其中定义了两个操作标签(<mx:operation>),分别对应于WebService中定义的WebMethod方法。result属性标记访问WebService方法成功后的处理函数;fault则相反,指定于访问失败的处理函数。以上两个<mx:operation>对应于WebService的WebMethod方法如下:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1///<summary>
2///返回字符串
3///</summary>
4///<returns></returns>
5[WebMethod]
6publicstringHelloWorld()
7{
8return"HelloWorld";
9}
10
11///<summary>
12///返回一个简单对象
13///</summary>
14///<returns></returns>
15[WebMethod]
16publicBookGetBook()
17{
18returnnewBook
19{
20Id=1,
21Name="三国演义",
22Author="罗贯中",
23Price=100
24};
25}

如上便是WebService方法定义和在Flex的客户端(mxml)通过<mx:WebService>标签来访问WebService的完整流程,下面我们来看看在Flex的客户端怎么去调用WebService所定义的方法:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1<mx:Script>
2<![CDATA[
3importmx.controls.Alert;
4importmx.rpc.events.FaultEvent;
5importmx.rpc.events.ResultEvent;
6
7/**
8*向WebService发起请求--调用HelloWorld方法,dataService为<mx:WebService>的id
9**/
10internalfunctiononRequest():void
11{
12dataService.HelloWorld();
13}
14
15/**
16*请求成功处理返回结果
17**/
18internalfunctiononSuccess(evt:ResultEvent):void
19{
20Alert.show(evt.result.toString());
21}
22
23
24/**
25*请求失败的处理函数
26**/
27internalfunctiononFault(evt:FaultEvent):void
28{
29Alert.show("访问WebService失败!");
30}
31]]>
32</mx:Script>

通过上面的调用,就可以完成一个Flex和.NET WebService的交互。当然我们在Flash/Flex的客户端调用WebService也是可以传递参数的,如下WebService的WebMethod定义:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1///<summary>
2///将传递进来的参数转化为大写字符返回
3///</summary>
4///<paramname="value"></param>
5///<returns></returns>
6[WebMethod]
7publicstringConvertToUpper(stringvalue)
8{
9returnvalue.ToUpper();
10}

通过在<mx:WebService>标签下配置<mx:operation>执行该方法就可以访问了,如下:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1<mx:operationname="ConvertToUpper"result="onSuccess(event)"fault="onFault(event)"/>
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1 /**
2*向WebService发起请求
3**/
4internalfunctiononRequest():void
5{
6//dataService.HelloWorld();
7dataService.ConvertToUpper("abcdefg");
8}


另外,我们还可以通过<mx:request>来传递参数,这里只需要知道<mx:request></mx:request>里的参数配置与WebService提供的WebMethod方法参数同名就OK。

回到前面看看WebService的方法定义,其中一个方法GetBook是返回的一个Book对象,如果是返回的对象我们在Flex的客户端怎么来获取这个对象的值呢?详细见如下代码示例:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1internalfunctiononObject():void
2{
3dataService.GetBook();
4}
5
6internalfunctiononObjectSuccess(evt:ResultEvent):void
7{
8//直接通过事件的result属性得到返回值,然后直接访问属性便OK
9Alert.show(evt.result.Name);
10}
11
12/**
13*请求失败的处理函数
14**/
15internalfunctiononFault(evt:FaultEvent):void
16{
17Alert.show("访问WebService失败!");
18}

如上便完成了服务端的WebService返回对象到客户端的调用。

版权说明

本文属原创文章,欢迎转载,其版权归作者、博客园、CSDN共有。

作 者:beniao

文章出处: http://blog.csdn.net/beniao277http://www.csdn.net

分享到:
评论

相关推荐

    Flex与.NET互操作基于WebService的数据访问

    Flex与.NET互操作是跨平台应用开发中的一个重要环节,它允许使用Adobe Flex的用户界面技术与微软.NET框架下的服务端逻辑进行数据交换。在这种场景下,WebService作为一种标准的跨平台通信方式,使得Flex客户端能够...

    基于WebService的数据访问(下) Flex与.NET互操作(三)

    在上一篇文章《Flex与.NET互操作(二):基于WebService的数据访问(上) 》中介绍了通过标签来访问Webservice。实际上我们也可以通过编程的方式动态的访问WebService,Flex SDK为我们提供了WebService类。

    Flex与.NET互操作

    ### Flex与.NET互操作知识点详解 #### 一、Flex与.NET互操作概述 Flex与.NET互操作是指在Flex客户端与.NET后端之间建立高效的通信机制。这种互操作性对于构建实时应用、数据交换密集型系统至关重要。通过有效的互...

    Flex与.Net互操作

    Flex与.NET互操作是开发跨平台富互联网应用(RIA)时的一个重要技术组合,它允许基于Adobe Flex的前端用户界面与Microsoft.NET后端服务进行高效的数据交换和功能调用。Flex以其强大的图形用户界面和丰富的媒体支持,...

    基于WebService的数据访问(上) Flex与.NET互操作(二)

    《基于WebService的数据访问(上) Flex与.NET互操作(二)》 在现代软件开发中,数据交换和互操作性是关键因素。本篇文章聚焦于使用Adobe Flex与Microsoft .NET平台之间的数据通信,特别是通过WebService实现。Flex...

    Flex基于WebService的数据访问

    三、Flex与.NET互操作 Flex与.NET的互操作主要依赖于WebService,因为WebService提供了一种跨平台的数据交换方式。在.NET环境中,我们可以创建一个ASP.NET WebService(ASMX或WCF服务),然后在Flex中通过...

    flex ,webservice(.net) 交互

    而.NET Webservice是微软.NET Framework提供的一种服务导向架构,用于构建可互操作的Web服务。 在Flex中,AS3.0是主要的编程语言,它允许开发者创建动态、交互式的用户界面并与服务器进行数据交换。AS3.0拥有面向...

    Flex+WebService附件上传下载

    在与.NET互操作时,通常使用HTTPHandler作为WebService的实现方式。HTTPHandler是ASP.NET中的一种处理器,它可以处理HTTP请求并返回响应。在文件上传的场景中,HTTPHandler接收由Flex客户端发送的文件数据,将其保存...

    flex+net实战

    在服务器端,可以使用ASP.NET或WCF(Windows Communication Foundation)来处理业务逻辑和数据访问,然后通过AMF将结果返回给Flex客户端。这种结合方式使得前后端通信高效、快速。 4. Flex端源码解析: Flex端源码...

    flex 4(flash builder 4)数据绑定教程(中文版)

    本章节主要介绍Flex框架及其与数据访问技术的关系,同时对比了Flex与其他传统技术如JSP、ASP等的不同之处。 **Flex与其它数据访问技术的比较** Flex作为一种灵活的用户界面框架,它的数据处理方式与传统的基于HTML...

    Flex附件上传下载

    文件`Flex与_NET互操作 使用FileReference+HttpHandler实现文件上传-下载_Flex_脚本之家.htm`可能包含一个完整的示例代码,演示了如何在Flex中使用`FileReference`类与.NET的HttpHandler协同工作,实现文件的上传和...

    Flex与Web服务的通讯+交互

    - AMF是一种高效的数据交换格式,用于Flex与服务器之间进行二进制数据传输,相比XML,AMF能显著提高数据传输速度和减少带宽消耗。 - BlazeDS和LCDS(LiveCycle Data Services)是Adobe提供的服务器端技术,支持AMF...

    flex开发系列书籍:XML技术在RIA中的集成

    XML因其开放性、简单性、互操作性和可扩展性等特性,成为Flex与后台系统(如J2EE)之间数据交换的理想选择。XML文档可以轻松地从数据库获取数据,经过处理后传递给客户端的Flex应用程序,或者接收客户端修改后的数据...

    RIA及其基于Flex的应用开发模型

    RIA技术应当支持如HTML/HTTP、XML、SOAP/WebService等标准协议和技术,以确保与其他系统的互操作性。 ##### 2.4 保留现有的工具 开发者希望能够在现有的编辑器或集成开发环境中继续工作,如Eclipse、Borland ...

    FMS案例开发.pdf

    开发者通过一系列的文章分享了关于ActionScript 3.0、Flex与.NET互操作以及FMS3的相关知识,并计划通过一个视频聊天室的案例来深入探讨这些技术。 二、技术方案 1. 媒体服务器:选用Flash Media Server 3,它能处理...

Global site tag (gtag.js) - Google Analytics