源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Flex与.NET互操作 使用HttpService、URLReqeust和URLLoader加载/传输数据

  • 时间:2022-08-02 05:42 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Flex与.NET互操作 使用HttpService、URLReqeust和URLLoader加载/传输数据
ActionScript 3.0中提供的数据加载请求类主要是HTTPService,URLLoader和URLRequest,可以通过他们协同来完成数据加载和请求。下面我么便来看看这三个类是怎么来完成数据加载工作。      在本地IIS服务器上有如下定义的XML文件:
 1 <?xml version="1.0" encoding="utf-8" ?>  2 <Root>  3   <Book>  4     <Id>1</Id>  5     <Name>《三国演义》</Name>  6     <Author>罗贯中</Author>  7     <Price>52.30</Price>  8   </Book>  9   <Book> 10     <Id>2</Id> 11     <Name>《西游记》</Name> 12     <Author>吴承恩</Author> 13     <Price>39.91</Price> 14   </Book> 15   <Book> 16     <Id>3</Id> 17     <Name>《红楼梦》</Name> 18     <Author>曹雪芹</Author> 19     <Price>48.20</Price> 20   </Book> 21   <Book> 22     <Id>4</Id> 23     <Name>《水浒传》</Name> 24     <Author>施耐庵</Author> 25     <Price>39.85</Price> 26   </Book> 27 </Root>
[b]一、使用HTTPService传递和加载数据[/b]      使用HTTPService可以实现加载数据,也可以实现参数传递,下面通过两个示例程序来讲解这两个知识点。      首先来看看HTTPService加载数据的方式。在Flex中使用HTTPService来装载外部数据是非常简单的,他是基于 HTTP协议发送POST和GET请求外部数据,然后通过指定的监听方法来处理响应。我们可以通过<mx:HTTPService>标签来完成对数据源的连接,也可以通过可编程方式来处理,两种方式没什么大的差距,实际开发中可以根据自己喜好选择。
 1 internal function onClick():void  2 {  3     var service:HTTPService = new HTTPService();  4     service.url = "http://localhost:1146/Data/Book.xml";  5     service.useProxy = false;  6     service.resultFormat="e4x";  7     service.addEventListener(ResultEvent.RESULT,onResultHandler);  8     service.send();  9 } 10  11 internal function onResultHandler(evt:ResultEvent):void 12 { 13     var xml:XML = evt.result as XML; 14     trace(xml); 15     bookGrid.dataProvider = xml.Book; 16 }
     该示例的运行结果见文章最后,下面是这个示例的完整代码:
[img]http://files.jb51.net/upload/20090615200655319.gif[/img] [img]http://files.jb51.net/upload/20090615200655188.gif[/img] 完整示例代码
     OK,我们来看看使用HTTPService传递参数到服务端是怎么实现的。使用HTTPService传递参数可以通过两种方式实现,分别如下:      1、直接在请求URL后面跟上参数列表,如:[url=http://localhost/web/Test.aspx?a=1&b=2]http://localhost/web/Test.aspx?a=1&b=2[/url]。      2、通过Flex SDK为我们提供专门用语参数传递的对象(URLVariables)来实现。      下面以一道简单的加法运算来演示HTTPService传递参数的使用,在Flex里将需要进行加法运算的两个数传递到.NET服务端并计算其和后返回给Flex客户端,两种方式传递没有太大的区别,详细请看如下代码演示:
 1 /**  2  * 通过RUL参数直接传递  3  * */  4 internal function onClick():void  5 {  6     var service:HTTPService = new HTTPService();  7     var a:String = txtA.text;  8     var b:String = txtB.text;  9     service.url = "http://localhost:1146/OperationHandler.ashx?a="+a+"&b="+b; 10     service.useProxy = false; 11     service.resultFormat="e4x"; 12     service.addEventListener(ResultEvent.RESULT,onResultHandler); 13     service.send(); 14 } 15  16 /** 17  * 通过URLVariables进行参数传递 18  * */ 19 internal function onClick():void 20 { 21     var service:HTTPService = new HTTPService(); 22     service.url = "http://localhost:1146/OperationHandler.ashx"; 23     service.useProxy = false; 24     service.resultFormat="e4x"; 25     service.addEventListener(ResultEvent.RESULT,onResultHandler); 26     var param:URLVariables = new URLVariables(); 27     param.a = txtA.text; 28     param.b = txtB.text; 29     service.send(); 30 }
      下面是完整的示例代码,可以把onClick()方法相互切换来测试两种不同的参数传递方式。
[img]http://files.jb51.net/upload/20090615200655319.gif[/img] [img]http://files.jb51.net/upload/20090615200655188.gif[/img] 完整的示例代码
[img]http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif[/img] [img]http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif[/img] OperationHandler.ashx
     上面示例的运行界面截图: [b]     [img]http://images.cnblogs.com/cnblogs_com/beniao/Flex/HttpServiceParam.jpg[/img]      [/b] [b][/b][b]  [/b] [b]二、了解URLReqeust[/b]      使用URLRequest 类可捕获单个 HTTP 请求中的所有信息。将URLRequest 对象传递给URLStream或URLLoader 类以及其他加载操作的[code]load()[/code]方法以启动URL数据加载。它的使用很简单,通过构造方法构造对象就OK:
1 var request:URLRequest = new URLRequest("http://localhost:1146/Data/Book.xml")
     同样可以使用URLRequest来请求一个本地项目/应用里的文件,如下代码示例:
1 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部