文章关键字:|Flex|.NET|WebService|数据|访问|C#|数据源|交互|
Flex提供了<mx:WebService>、<mx:HTTPService>和<mx:RemoteObject>标签来直接访问远程数据,这用于与各种不同语言环境开发提供的远程服务端数据源(如WebService)进行数据交互通信显得更加容易。
本文以.NET平台下C#语言开发的WebService作为远程数据源,详细介绍Flex与.NET的WebService的数据通信知识点;包括连接WebService,远程调用WebService方法,给WebService方法传递参数等相关知识点。三个标签的使用方法基本上是一样,这里就以<mx:WebService>标签为例进行介绍。
首先看看如下代码块:
1 <mx:WebService id="dataService"
2 wsdl="http://localhost/FlashFlex/DataWebService.asmx?wsdl"
3 useProxy="false">
4 <mx:operation name="HelloWorld" result="onSuccess(event)" fault="onFault(event)"/>
5 <mx:operation name="GetBook" fault="onFault(event)" result="onObjectSuccess(event)"/>
6 </mx:WebService>
wsdl属性指定到要访问的WebService的wsdl地址既可,其中定义了两个操作标签(<mx:operation>),分别对应于WebService中定义的WebMethod方法。result属性标记访问WebService方法成功后的处理函数;fault则相反,指定于访问失败的处理函数。以上两个<mx:operation>对应于WebService的WebMethod方法如下:
1 /// <summary>
2 /// 返回字符串
3 /// </summary>
4 /// <returns></returns>
5 [WebMethod]
6 public string HelloWorld()
7 {
8 return "Hello World";
9 }
10
11 /// <summary>
12 /// 返回一个简单对象
13 /// </summary>
14 /// <returns></returns>
15 [WebMethod]
16 public Book GetBook()
17 {
18 return new Book
19 {
20 Id = 1,
21 Name = "三国演义",
22 Author = "罗贯中",
23 Price = 100
24 };
25 }
如上便是WebService方法定义和在Flex的客户端(mxml)通过<mx:WebService>标签来访问WebService的完整流程,下面我们来看看在Flex的客户端怎么去调用WebService所定义的方法:
1 <mx:Script>
2 <![CDATA[
3 import mx.controls.Alert;
4 import mx.rpc.events.FaultEvent;
5 import mx.rpc.events.ResultEvent;
6
7 /**
8 * 向WebService发起请求--调用HelloWorld方法,dataService为<mx:WebService>的id
9 * */
10 internal function onRequest():void
11 {
12 dataService.HelloWorld();
13 }
14
15 /**
16 * 请求成功处理返回结果
17 * */
18 internal function onSuccess(evt:ResultEvent):void
19 {
20 Alert.show(evt.result.toString());
21 }
22
23
24 /**
25 * 请求失败的处理函数
26 * */
27 internal function onFault(evt:FaultEvent):void
28 {
29 Alert.show("访问WebService失败!");
30 }
31 ]]>
32 </mx:Script>
通过上面的调用,就可以完成一个Flex和.NET WebService的交互。当然我们在Flash/Flex的客户端调用WebService也是可以传递参数的,如下WebService的WebMethod定义:
1 /// <summary>
2 /// 将传递进来的参数转化为大写字符返回
3 /// </summary>
4 /// <param name="value"></param>
5 /// <returns></returns>
6 [WebMethod]
7 public string ConvertToUpper(string value)
8 {
9 return value.ToUpper();
10 }
通过在<mx:WebService>标签下配置<mx:operation>执行该方法就可以访问了,如下:
1 <mx:operation name="ConvertToUpper" result="onSuccess(event)" fault="onFault(event)"/>
1 /**
2 * 向WebService发起请求
3 * */
4 internal function onRequest():void
5 {
6 //dataService.HelloWorld();
7 dataService.ConvertToUpper("abcdefg");
8 }
另外,我们还可以通过<mx:request>来传递参数,这里只需要知道<mx:request></mx:request>里的参数配置与WebService提供的WebMethod方法参数同名就OK。
回到前面看看WebService的方法定义,其中一个方法GetBook是返回的一个Book对象,如果是返回的对象我们在Flex的客户端怎么来获取这个对象的值呢?详细见如下代码示例:
1 internal function onObject():void
2 {
3 dataService.GetBook();
4 }
5
6 internal function onObjectSuccess(evt:ResultEvent):void
7 {
8 //直接通过事件的result属性得到返回值,然后直接访问属性便OK
9 Alert.show(evt.result.Name);
10 }
11
12 /**
13 * 请求失败的处理函数
14 * */
15 internal function onFault(evt:FaultEvent):void
16 {
17 Alert.show("访问WebService失败!");
18 }
如上便完成了服务端的WebService返回对象到客户端的调用。
原文地址:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9304
分享到:
相关推荐
在Flex中,我们通常使用以下三种标签来实现远程数据访问: 1. `<mx:WebService>`:专门用来调用基于SOAP协议的WebService,提供了一种直接调用WebService方法的方式。 2. `<mx:HTTPService>`:用于发送HTTP GET或...
- **远程访问**: 使用FluorineFx网关可以实现.NET与Flex之间的远程调用,从而实现数据和服务的无缝共享。 - **认证与授权**: FluorineFx还支持认证和授权机制,这有助于提高应用程序的安全性。 - **及时通信**: ...
在上一篇文章《Flex与.NET互操作(二):基于WebService的数据访问(上) 》中介绍了通过标签来访问Webservice。实际上我们也可以通过编程的方式动态的访问WebService,Flex SDK为我们提供了WebService类。
本篇文章将深入探讨Flex如何基于WebService进行数据访问。 一、Flex与WebService基础 WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的Web应用程序接口,允许不同系统之间的数据交换。SOAP是传输协议,WSDL是...
Flex与.NET互操作是开发跨平台富互联网应用(RIA)时的一个重要技术组合,它允许基于Adobe Flex的前端用户界面与Microsoft.NET后端服务进行高效的数据交换和功能调用。Flex以其强大的图形用户界面和丰富的媒体支持,...
通过这个ExampleWebservie示例,初学者可以深入理解Flex与.NET Webservice的交互过程,学习如何在Flex中创建服务代理,调用服务方法,以及处理返回的数据。这是一个很好的实践项目,有助于提升跨平台开发技能。
【WebService数据交互事例】是关于使用Flex与.NET平台间通过WebService进行数据交换的一个实践教程。Flex是一款强大的富互联网应用程序(RIA)开发工具,而WebService是一种基于SOAP协议的跨平台、跨语言的数据交换...
在IT行业中,跨平台通信是常见...总之,Flex与.NET的通信涉及多个层面的技术,包括客户端和服务器端的开发环境、通信协议、数据交换格式和错误处理。理解并掌握这些知识点,有助于开发者构建高效、稳定且跨平台的系统。
《基于WebService的数据访问(上) Flex与.NET互操作(二)》 在现代软件开发中,数据交换和互操作性是关键因素。本篇文章聚焦于使用Adobe Flex与Microsoft .NET平台之间的数据通信,特别是通过WebService实现。Flex...
1. 数据交互:Flex客户端通过HTTPService或者WebService与ASP.NET服务器进行数据交换。HTTPService允许Flex应用发送HTTP请求并处理响应,而WebService则使得Flex可以直接调用ASP.NET Web服务方法。 2. 数据收集:在...
Flex数据访问:WebService 在开发Flex应用程序时,与外部服务进行数据交互是非常常见的需求,而WebService组件则提供了访问SOAP Web服务的功能。SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在...
这涉及到数据库设计、SQL查询和ADO.NET数据访问技术的运用,开发者可以学习如何通过.NET连接和操作数据库。 总的来说,这个项目涵盖了FLEX4前端开发、.NET(C#)后端服务构建、以及二者之间的通信和数据管理等多个...
“数据访问”是指通过Web服务进行数据交互;“webservice”是实现前后端通信的关键技术。 在提供的文件名称列表中,“WebApplication1”可能是一个ASP.NET项目,包含Web服务的实现,而“FlexNet”可能是一个Flex...
Flex和ASP.NET之间的通信是通过Web服务(WebService)实现的,这种技术允许不同平台和语言的应用程序之间交换数据。在本示例中,我们将探讨如何使用Flex作为客户端,与使用ASP.NET构建的Web服务进行交互,以实现一个...
在项目中,ASP.NET类通常是公开的业务逻辑层(BLL)或数据访问层(DAL),它们处理Flex客户端发送的请求,执行相应的操作,如数据库查询、业务逻辑计算等,然后将结果返回给客户端。这些类需要使用FluorineFX提供的...
在服务器端,可以使用ASP.NET或WCF(Windows Communication Foundation)来处理业务逻辑和数据访问,然后通过AMF将结果返回给Flex客户端。这种结合方式使得前后端通信高效、快速。 4. Flex端源码解析: Flex端源码...
在ASP.NET中,与Oracle数据库交互通常通过ADO.NET(一种.NET Framework的数据访问技术)来实现。开发者可以使用Oracle Data Provider for .NET (ODP.NET)作为数据提供者,它为ASP.NET应用程序提供了直接访问Oracle...
在IT行业中,Flex是一种基于ActionScript的开源框架,主要用于构建富互联网应用程序(RIA)。它允许开发者创建具有丰富交互性和动态视觉效果的Web应用。而Web服务则是通过HTTP协议提供的一种标准化方式,使得不同...