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

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

首先看看如下代码块:

复制代码 代码如下:

<mx:WebService id="dataService"
wsdl="http://localhost/FlashFlex/DataWebService.asmx?wsdl"
useProxy="false">
<mx:operation name="HelloWorld" result="onSuccess(event)" fault="onFault(event)"/>
<mx:operation name="GetBook" fault="onFault(event)" result="onObjectSuccess(event)"/>
</mx:WebService>

wsdl属性指定到要访问的WebService的wsdl地址既可,其中定义了两个操作标签 (<mx:operation>),分别对应于WebService中定义的WebMethod方法。result属性标记访问 WebService方法成功后的处理函数;fault则相反,指定于访问失败的处理函数。以上两个<mx:operation>对应于 WebService的WebMethod方法如下:
/// <summary>
/// 返回字符串
/// </summary>
/// <returns></returns>
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}

/// <summary>
/// 返回一个简单对象
/// </summary>
/// <returns></returns>
[WebMethod]
public Book GetBook()
{
return new Book
{
Id = 1,
Name = "三国演义",
Author = "罗贯中",
Price = 100
};
}

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

复制代码 代码如下:

<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;

/**
* 向WebService发起请求--调用HelloWorld方法,dataService为<mx:WebService>的id
* */
internal function onRequest():void
{
dataService.HelloWorld();
}

/**
* 请求成功处理返回结果
* */
internal function onSuccess(evt:ResultEvent):void
{
Alert.show(evt.result.toString());
}

/**
* 请求失败的处理函数
* */
internal function onFault(evt:FaultEvent):void
{
Alert.show("访问WebService失败!");
}
]]>
</mx:Script>

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

复制代码 代码如下:

/// <summary>
/// 将传递进来的参数转化为大写字符返回
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
[WebMethod]
public string ConvertToUpper(string value)
{
return value.ToUpper();
}

通过在<mx:WebService>标签下配置<mx:operation>执行该方法就可以访问了,如下:
<mx:operation name="ConvertToUpper" result="onSuccess(event)" fault="onFault(event)"/>
/**
* 向WebService发起请求
* */
internal function onRequest():void
{
//dataService.HelloWorld();
dataService.ConvertToUpper("abcdefg");
}

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

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

复制代码 代码如下:

internal function onObject():void
{
dataService.GetBook();
}

internal function onObjectSuccess(evt:ResultEvent):void
{
//直接通过事件的result属性得到返回值,然后直接访问属性便OK
Alert.show(evt.result.Name);
}

/**
* 请求失败的处理函数
* */
internal function onFault(evt:FaultEvent):void
{
Alert.show("访问WebService失败!");
}

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

时间: 2024-09-14 15:29:03

基于WebService的数据访问(上) Flex与.NET互操作(二)_Flex的相关文章

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

使用WebService类来访问WebService其实也就是将<mx:WebService>标签的属性通过类对象的属性形式来表示,相比之下使用WebService类比使用<mx:WebService>标签要灵活.下面我们来看看编程方式怎么连接和调用远程方法: 1     internal function onClick():void2     {3         var service:WebService = new WebService();4         servi

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

Flex提供了<mx:WebService>.<mx:HTTPService>和<mx:RemoteObject>标签来直接访问远程数据,这用于与各种不同语 言环境开发提供的远程服务端数据源(如WebService)进行数据交互通信显得更加容易. 本文以.NET平台下C#语言开发的WebService作为远程Webservice,详细介绍Flex与.NET的WebService的数据通信知识点;包括连接WebService ,远程调用WebService方法,给WebS

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

在上一篇文章<Flex与.NET互操作(二):基于WebService的数据访问(上) >中介绍了通过<mx:WebService>标签来访问Webservice. 实际上我们也可以通过编程的方式动态的访问WebService,Flex SDK为我们提供了WebService类. 使用WebService类来访问WebService其实也就是将<mx:WebService>标签的属性通过类对象的属性形式来表示,相比之下使用 WebService类比使用<mx:We

ASP.NET企业开发框架IsLine FrameWork系列之四--DataProvider 数据访问(上)

DataProvider是日常编程中最常用的Provider,它为项目提供了与数据库交互的能力,使程序人员能 够方便.快捷的获得SQL结构,简化了程序代码,增强程序可读性.它共有8个类库,100多个方法,包括 配置.功能和枚举三部分,以下是它的基本类关系: 开发框架IsLine FrameWork系列之四--DataProvider 数据访问(上)-"> 图3.4公共接口 图3.5文件操作 图3.6 数据库操作与数据容器接口

基于HTTP 的数据访问

   除了XML 技术之外,Microsoft SQL Server 2000 的开发者们也把通过HTTP 访问的特性(HTTP access9 作为SQL Server 2000 的一个核心特性.这样用户完全可以把SQL Server 放到一个URL 上了,从而保证开发人员和潜在的最终用户都能简单地通过一个URL 来访问SQL Server. 本节我们主要介绍以下三个问题: 如何创建虚拟目录 HTTP 的语法 HTTP 的访问能力 20.4.1 创建虚拟目录    在使用HTTP 访问SQL

我的数据访问函数库的源代码(二)—— SQL语句部分

/* 2008 4 25 更新 */ 我的数据访问函数库的源码.整个类有1400行,原先就是分开来写的,现在更新后还是分开来发一下吧. 第二部分:SQL语句部分.传入SQL语句,执行相关的操作.   1//查询语句部分  2        运行查询语句返回记录(DataSet.DataTable.DataRow.String[].String)#region 运行查询语句返回记录(DataSet.DataTable.DataRow.String[].String)  3      4      

MS SQL基础教程:基于HTTP的数据访问

除了XML 技术之外,Microsoft SQL Server 2000 的开发者们也把通过HTTP 访问的特性(HTTP access9 作为SQL Server 2000 的一个核心特性.这样用户完全可以把SQL Server 放到一个URL 上了,从而保证开发人员和潜在的最终用户都能简单地通过一个URL 来访问SQL Server. 本节我们主要介绍以下三个问题: 如何创建虚拟目录 HTTP 的语法 HTTP 的访问能力 20.4.1 创建虚拟目录 在使用HTTP 访问SQL Server

IsLine FrameWork系列之四--DataProvider 数据访问(上)

接上文 DataProvider是日常编程中最常用的Provider,它为项目提供了与数据库交互的能力,使程序人员能够方便.快捷的获得SQL结构,简化了程序代码,增强程序可读性.它共有8个类库,100多个方法,包括配置.功能和枚举三部分,以下是它的基本类关系: 图3.4公共接口 图3.5文件操作 图3.6 数据库操作与数据容器接口

FluorineFx.NET的认证(Authentication )与授权(Authorization)Flex与.NET互操作 九_Flex

应用程序可根据用户信息授予和拒绝执行.FluorineFx.NET的认证和授权使用.Net Framework基于角色的安全性的支持. 比如说我们需要自定义一个认证与授权的方案,指定那些远程服务上的那些方法将要被认证或授权以及授权用户角色组等,我们就需要自定义一个 LoginCommand并实现ILoginCommand接口或者继承于 FluorineFx.Security.GenericLoginCommand(此类实现了ILoginCommand接口)基类.接口定义如下:  1 namesp