`
snoopy7713
  • 浏览: 1141200 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

Flex与服务器交互之二(使用HTTPService同服务器交互) .

    博客分类:
  • Flex
阅读更多

 由于Flex只是一种客户端技术其本身并不能直接同数据库交互,在实际的应用开发过程中Flex提供了如URLRequest、HTTPService、RemoteObject、WebService等类以实现同服务器的通讯和数据交互,下面做一些介绍和实例解析:
   1、使用HTTPService组件同服务器交互
      使用过程中在程序中添加一个HTTPService组件,设置它的请求接收数据的URL 调用Send方法发送请求,设置result和fault事件函数接收ResultEvent和FaultEvent对象获取返回数据或捕获错误
       HTTPService官方帮助文档http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_2.html
       HTTPService组件相关属性和事件:
   

  1. <mx:HTTPService  
  2.      Properties  
  3.      concurrency="multiple|single|last"  
  4.      contentType="application/x-www-form-urlencoded|application/xml"  
  5.      destination="DefaultHTTP"  
  6.      id="No default."  
  7.      method="GET|POST|HEAD|OPTIONS|PUT|TRACE|DELETE"//请求数据的HTTP头  
  8.      resultFormat="object|array|xml|e4x|flashvars|text"  
  9.      showBusyCursor="false|true"  
  10.      makeObjectsBindable="false|true"  
  11.      url="No default."                //请求的URL可以是PHP,ASPX,JSP....  
  12.      useProxy="false|true"  
  13.      xmlEncode="No default."  
  14.      xmlDecode="No default."  
  15.       Events  
  16.      fault="No default."                //请求发行错误时触发的事件  
  17.      result="No default."                //请求完成后触发的事件以处理返回结果  
  18.     />  


    完成以下示例要引用到的Flex包
   

  1. import mx.rpc.events.FaultEvent;  
  2.     import mx.collections.XMLListCollection;  
  3.     import flash.events.Event;  
  4.     import mx.utils.URLUtil;  
  5.     import mx.collections.ArrayCollection;  
  6.     import mx.rpc.events.ResultEvent;  


   2、应用示例一(向服务器发送请求并传递参数):
     服务器端代码:
      

  1. protected void Page_Load(object sender, EventArgs e)  
  2.         {  
  3.             //获取URLResuest请求回的参数 返回数据用;分隔以方便Flex对数据进行序列化   
  4.             string rs = String.Format("name={0};age={1};address={2}",Request.QueryString["name"],  
  5.                                                                      Request.QueryString["age"],  
  6.                                                                      Request.QueryString["address"]);  
  7.             Response.ClearContent();  
  8.             Response.ContentType = "text/plain";  
  9.             Response.Write(rs); //以文本形式返回数据   
  10.             Response.End();  
  11.         }  


    Felx代码:
     引入HTTPService组件(<mx:request></mx:request>节点中是请求的参数):
   

  1. <mx:HTTPService id="hsText" url="http://localhost:2222/FlexService/TextFrm.aspx" resultFormat="object" result="hsResultTextHandler(event);" fault="hsResultError(event)" >  
  2.         <mx:request xmlns="">  
  3.             <name>Peter</name>  
  4.             <age>15</age>  
  5.             <address>ShenZhen GuangDong China</address>  
  6.         </mx:request>  
  7.     </mx:HTTPService>  


    Flex中发送请求:
   

  1. private function getText():void  
  2.     {  
  3.         hsText.send();  
  4.         labMsg.alpha = 1;  
  5.     }  


    Flex中接收返回数据:
   

  1. private function hsResultTextHandler(e:ResultEvent):void  
  2.     {  
  3.         var o:Object = URLUtil.stringToObject(String(e.result)); //使用URLUtil对将数据进行反序列化以方便使用   
  4.         txtName.text = o.name;  
  5.         txtAge.text = o.age;  
  6.         txtAddress.text = o.address;  
  7.         labMsg.alpha = 0;  
  8.     }  


    Flex中错误处理:
   

  1. private function hsResultError(e:FaultEvent):void  
  2.     {  
  3.         Alert.show(e.message.toString()); //如当访问的页面不存在时跳转执行如下操作   
  4.         //异常要执行的操作   
  5.         labMsg.alpha = 0;  
  6.     }  


   3、应用示例二(向服务器发送请求返回XML数据并绑定到Grid中):
       服务器端代码:
      

  1. protected void Page_Load(object sender, EventArgs e)  
  2.       {  
  3.           String s = @"<?xml version=""1.0"" encoding=""utf-8""?>  
  4.                           <EV_ChartData_Scatter xmlns=""http://www.Richardjun.com/ChartData/XML"">   
  5.                             <ScatterItem id=""0"">  
  6.                               <CAN_ITEM_ID>561</CAN_ITEM_ID>  
  7.                               <CAN_ITEM_NAME>主控ECU通讯状况</CAN_ITEM_NAME>  
  8.                               <ITEM_VALUE>0</ITEM_VALUE>  
  9.                               <MATCH_VALUE>正常</MATCH_VALUE>  
  10.                              </ScatterItem>  
  11.                             <ScatterItem  id=""1"">  
  12.                               <CAN_ITEM_ID>561</CAN_ITEM_ID>  
  13.                               <CAN_ITEM_NAME>主控ECU通讯状况</CAN_ITEM_NAME>  
  14.                               <ITEM_VALUE>1</ITEM_VALUE>  
  15.                               <MATCH_VALUE>丢包</MATCH_VALUE>  
  16.                             </ScatterItem>  
  17.                           </EV_ChartData_Scatter>";  
  18.           Response.ClearContent();  
  19.           Response.ContentType = "text/xml";  
  20.           Response.Write(s);  
  21.           Response.End();  
  22.       }  


    Felx代码:
    引入HTTPService组件
   

  1. <mx:HTTPService id="hsXML" url="http://localhost:2222/FlexService/XMLFrm.aspx" resultFormat="object" result="onXMLResult(event);" />  


    Flex中发送请求:
   

  1. private function getXML():void  
  2.     {  
  3.         hsXML.send();  
  4.         labMsg.alpha = 1;  
  5.     }  


    Flex中接收返回数据:
   

  1. [Bindable]  
  2.     private var scatters:ArrayCollection;//主要用于绑定Grid   
  3.     private function onXMLResult(e:ResultEvent):void  
  4.     {  
  5.         scatters = e.result.EV_ChartData_Scatter.ScatterItem;  
  6.     }  


    Flex中绑定Grid代码:
   

  1. <mx:Canvas x="400" y="0" width="350" height="200" borderColor="#000000" themeColor="#DCD0D0" backgroundColor="#84DACF">  
  2.         <mx:DataGrid x="10" y="10" width="333" id="grid1" dataProvider="{scatters}" height="140">  
  3.         <mx:columns>  
  4.             <mx:DataGridColumn headerText="CAN_ITEM_ID " dataField="CAN_ITEM_ID" />  
  5.             <mx:DataGridColumn headerText="CAN_ITEM_NAME " dataField="CAN_ITEM_NAME" />  
  6.             <mx:DataGridColumn headerText=" MATCH_VALUE" dataField="MATCH_VALUE" />  
  7.         </mx:columns>  
  8.         </mx:DataGrid>  
  9.         <mx:Button x="148" y="160" label="getXML" id="btnGetXML" click="getXML();"/>  
  10.     </mx:Canvas>  


    最终结果:

 

   http://p.blog.csdn.net/images/p_blog_csdn_net/xingjunli/EntryImages/20091224/Flex与服务器交互之二.jpg

分享到:
评论

相关推荐

    Flex与后台交互的方法_HTTPService_WebService_URLLoader

    在Flex应用中,与后台服务器的交互是必不可少的功能,以便获取或更新数据,实现动态功能。本篇文章将详细探讨Flex与后台交互的三种主要方法:HTTPService、WebService和URLLoader。 1. HTTPService: HTTPService是...

    Flex4.0 如何通过 HttpService和WebService与服务器进行通信

    本篇文章将深入探讨如何利用Flex 4.0中的HttpService和WebService组件与Java Struts2框架构建的服务器进行通信。 首先,我们来看HttpService。HttpService是ActionScript 3.0中的一个类,用于发起HTTP请求,通常...

    Flex与Java的交互

    2. Flex与服务器交互:HTTPService HTTPService组件允许Flex通过HTTP协议与服务器进行数据交换。这对于与不支持AMF的服务器进行通信或执行RESTful API调用非常有用。在Java端,我们需要创建一个Servlet,如`...

    flex4与Java交互.pdf

    在本文中,我们将深入探讨Flex 4与Java交互的三种主要方式:通过RemoteObject与普通Java类通信、使用HTTPService与服务器交互以及通过WebService与Web服务通信。这些技术在开发富互联网应用程序(RIA)时,允许前端...

    java 中使用Flex的HttpService的详细配置

    在Java开发中,Flex HttpService是一个强大的工具,用于在Adobe Flex客户端与服务器之间进行数据通信。这个服务允许Flex应用程序通过HTTP协议发送请求到后端服务器,并接收响应数据。本篇文章将深入探讨如何在Java...

    flex4与Java交互.docx

    2. Flex与服务器交互 - HTTPService HTTPService允许Flex应用通过HTTP协议与服务器进行通信。在这个例子中,定义了一个名为`SimpleServiceServlet`的Servlet,它处理来自Flex的请求并返回响应。在Flex客户端,我们...

    Flex+HTTPService 例子

    在这个“Flex+HTTPService 例子”中,我们将探讨如何使用Flex与Java后台通过HTTPService进行数据交互。 首先,我们需要了解Flex中的HTTPService组件。HTTPService允许开发者发送HTTP请求到服务器,并接收响应数据。...

    Flex与Servlet之间数据的交互

    Flex与Servlet之间的数据交互是JavaWeb开发中的一个重要环节,它涉及到客户端富互联网应用程序(RIA)与服务器端数据处理的协同工作。Flex作为一个基于Adobe Flash Player的前端开发框架,主要用于创建具有丰富用户...

    flex4 httpservice 例子

    Flex4是一种基于ActionScript 3.0的开源框架...通过查看和运行这个示例,你将更深入地理解如何在Flex4中使用`HTTPService`与服务器交换数据。记住,理解XML数据的结构和如何适当地解析它,是使用`HTTPService`的关键。

    Flex与服务器端通信

    - **服务端接口设计**:为了与Flex的RemoteObject通信,C#服务器需要提供对应的方法接口,这些接口会被Flex客户端调用,实现业务逻辑的交互。 4. **Flex源码解析** - **ActionScript代码**:在Flex源码中,通常会...

    flex与java通讯,URL,HTTPService,Socket

    Flex与Java之间的通信是开发跨平台应用程序时的关键技术,它允许客户端(通常为Flex应用程序)与服务器端(通常是Java应用程序)进行数据交换。本篇将深入探讨几种主要的通信方式:URLLoader,HTTPService和Socket。...

    FLEX与JSP结合并测试HTTPService与java用XML通信.doc

    【知识点详解】 本文档主要介绍了如何在Java JSP环境中集成Adobe ...这个过程涉及到Web项目配置、Struts框架集成、Flex JSP标签库的使用以及Flex Data Services的配置,最终实现了富客户端和服务器之间的数据交互。

    Flex+SpringMVC HttpService 发送XML数据

    本文将详细介绍如何使用Flex的HttpService组件向SpringMVC应用发送XML数据,并进行交互。 一、Flex中的HttpService组件 1. 创建HttpService:在Flex项目中,通过MXML或ActionScript可以创建HttpService实例。设置...

    Flex使用HttpService以键值对的形式发送请求,Java使用Servlet接收

    在开发分布式应用时,Flex和Java的交互是一个常见的需求。Flex作为前端的富互联网应用程序(RIA)框架,可以通过HTTP协议与后端服务器进行通信。在这个场景中,Flex使用`HttpService`组件向Java的Servlet发送键值对...

    Flex与后台交互的方法

    Flex与后台交互的方法是其核心功能之一,确保前端用户界面与后端数据服务之间的无缝通信。以下将详细介绍Flex与后台交互的常见方法和相关知识点。 1. **AMF (Action Message Format)** AMF是Flex与服务器之间进行...

    flex开发例子 flex与后台交互的例子 flex工程

    而AMF(Action Message Format)通道则提供更高效的数据交换方式,适合于Flex与基于Adobe BlazeDS或LCDS的服务器之间进行数据交互。 本Flex工程"flexDemo"包含了一个完整的交互实例,可能包括以下几个关键部分: 1...

    flex与PHP数据交互教程

    Flex是Adobe公司开发的一种富互联网应用程序(RIA)框架,它主要使用ActionScript编程语言和MXML标记语言,用于创建交互式、动态的用户界面。PHP则是一种广泛使用的开源服务器端脚本语言,尤其适合Web开发,可以嵌入...

    Flex与后台交互的几种方法详解

    根据提供的标题、描述、标签及部分内容,本文将详细介绍Flex与后台进行交互的三种主要方法:通过FlashVars传递参数、利用HttpService服务以及采用URLLoader组件。这些方法在Flex开发中非常常见,对于实现数据的前后...

Global site tag (gtag.js) - Google Analytics