这两天在考虑flex与后端java服务交互的问题。在采用BlazeDS的Remote Object方式,还是传统的http service方式之间徘徊了一段时间:
采用BlazeDS的Remote Object好处是显而易见的,只需要维护后端server部分的java对象结构即可,flex前段采用<mx:RemoteObject>的destination索引即可(简单的配置即可)。但是坏处就是对于其他接入方式支持不了,同时对于前台显示方式也有所限制了。
采用http service的方式,可能会浪费一部分xml解析的时间,损失一部分效率(当前flex前端也不得不额外多出很多object的构造)。但是通用性将得到保证。
最终还是决定采用最原始的http service方式。作为平台内的一个组件,http service的方式应该会给我带来很多灵活的扩展性处理。
===================================================
http service使用很简单,但是我在第一次使用的时候犯了严重的错误,浪费了不少时间。此处铭记一下,以备后续反思。
做了一个尝试,后端利用最原始的servlet提供xml数据源,前端利用resultevent来获取。但总是不成功。刚开是利用“res.result.toString()”这样的方式,总只能返回[Object Object]这样的结果。我以为是后端servlet输出xml不正确,检查和测试几次,后端没有问题。后来改成“res.result.Item.itemname”这种方式,竟然能够得到值,但是我视图构造成XML对象的时候,总是返回Object,无法成功。—— 埋头苦调试了半天,终不得答案,郁闷呀。
后来值得重新回头翻一翻as3 language reference,才恍然明白,竟然还有一个“resultFormat”属性需要设置,默认只是返回object对象的,而我需要的是XML或E4X对象。
此处铭记如下:返回数据的格式resultFormat有几种类型,object、array、xml、flashvars、text和e4x,默认的设置为object。
RESULT_FORMAT_ARRAY : String = "array"
[] 结果格式“array”与“object”相似,但是其返回的值始终为数组;这样,如果从结果格式“object”返回的结果尚不是数组,则将把该项目添加为一个新数组的第一个项目。
RESULT_FORMAT_E4X : String = "e4x"
[] 结果格式“e4x”指定返回的值是一个 XML 实例,此实例可以使用 ECMAScript for XML (E4X) 表达式访问。
RESULT_FORMAT_FLASHVARS : String = "flashvars"
[] 结果格式“flashvars”指定返回的值是包含由 & 符号分隔的名称=值对的文本,该文本被分析为 ActionScript 对象。
RESULT_FORMAT_OBJECT : String = "object"
[] 结果格式“object”指定返回的值是 XML,但按照 ActionScript 对象树分析。
RESULT_FORMAT_TEXT : String = "text"
[] 结果格式“text”指定 结果文本应为未经处理的字符串。
RESULT_FORMAT_XML : String = "xml"
[] 结果格式“xml”指定结果应作为指向父 flash.xml.XMLDocument 的第一个子项的 flash.xml.XMLNode 实例返回。
================================================
在 MXML 文件中使用<mx:HTTPService>
标签代表 HTTPService 对象。当调用 HTTPService 对象的send()
方法时,将发出对指定 URL 的 HTTP 请求,并且返回 HTTP 响应。可以选择向指定 URL 传递参数。如果没有使用基于服务器的代理服务,则只能使用 HTTP GET 或 POST 方法。如果将 useProxy 属性设置为 true 并使用基于服务器的代理服务,则还可以使用 HTTP HEAD、OPTIONS、TRACE 和 DELETE 方法。
================================================
铭记于胸: 遇事先查API DOC是个好习惯!
注意:由于软件限制,当使用 GET 时 HTTPService 不生成用户界面友好的错误消息。
分享到:
相关推荐
简单的 flex HttpService例子,可供初学者参考
首先,让我们了解一下Flex和Java通信的基本原理。 Flex是一款基于ActionScript 3的开源框架,用于创建富互联网应用程序(RIA)。HTTPService组件是Flex提供的一个用于与远程服务器进行HTTP通信的工具,它支持SOAP、...
在ActionScript代码中定义`handleResult`和`handleFault`函数,以解析XML数据和处理错误: ```actionscript private function handleResult(event:ResultEvent):void { var xmlData:XML = XML(event.result); ...
本篇文章将深入探讨如何在Java环境中配置和使用Flex的HttpService。 首先,Flex HttpService基于AMF(Action Message Format)协议,它提供了高效、二进制的数据交换格式,能够显著提高数据传输效率。然而,为了使...
这种方法适用于GET和POST请求,但通常在POST请求中更为常见,因为它可以处理更复杂的数据结构。以下是如何使用URLVariables传递参数的步骤: 1. **创建URLVariables对象**: ```actionscript var params:...
本篇文章将深入探讨如何利用Flex 4.0中的HttpService和WebService组件与Java Struts2框架构建的服务器进行通信。 首先,我们来看HttpService。HttpService是ActionScript 3.0中的一个类,用于发起HTTP请求,通常...
在Flex中,我们通常在MXML文件中声明HTTPService,并在ActionScript代码中配置和调用它。 在描述中提到,这是一个针对Flex新手的学习资源。因此,我们将逐步讲解创建一个简单的Flex应用,使用HTTPService与Java后台...
帶有ASP.NET的Flex HTTPService 本教程旨在演示在帶有ASP.NET的Flex 2+中HTTPService功能的使用。 Adobe Flex中有許多方法可以與ASP.NET(或簡單地說,服務器端語言)進行通信。 HttpService,WebService,WebORB...
HTTPService支持GET和POST等HTTP方法,可以发送JSON、XML等多种格式的数据,并能够处理响应结果,使开发者能够轻松地集成实时数据流到他们的Flex应用中。 ### 实例解析 在提供的代码片段中,我们看到一个简单的...
flex通过httpService读取xml数据到datagird中,通过读取远程URL的XML数据(这里保存到本地),保存到ArrayCollection中,然后在将ArrayCollection绑定到datagird上 环境:flex3.0 可直接运行
在Flex中,HttpService组件是用于与服务器进行HTTP通信的关键工具,它支持发送GET和POST请求,处理JSON、XML等多种数据格式。SpringMVC则是Spring框架的一个模块,专注于Web应用的模型-视图-控制器(MVC)架构,使得...
这个项目展示了如何通过HTTPService组件在Flex应用中实现远程调用Java服务,以完成数据的交换和处理。Flex 4是Adobe AIR和Flash Player支持的ActionScript 3.0开发框架,它提供了一个强大的UI组件库和数据绑定机制,...
根据提供的文件信息,我们可以深入探讨FLEX中的_HTTPService组件及其使用方法。此组件主要用于与Web服务进行通信,例如从服务器获取或发送数据。下面将详细解释如何使用_HTTPService组件,并通过示例代码来展示其...
在开发分布式应用时,Flex和Java的交互是一个常见的需求。Flex作为前端的富互联网应用程序(RIA)框架,可以通过HTTP协议与后端服务器进行通信。在这个场景中,Flex使用`HttpService`组件向Java的Servlet发送键值对...
通过以上介绍,我们可以理解Flex如何使用`HTTPService`组件与Java后台进行通信,包括配置服务、发送请求和处理响应。在实际项目中,还需要考虑安全、性能优化以及错误处理等方面的问题。理解这一通信机制对于构建...
总的来说,Flex通过XML类和HTTPService组件提供了强大的功能,使开发者能够轻松地解析XML文件并从Web服务器获取数据。理解这些核心概念和API,对于开发Flex应用程序,尤其是涉及数据交互的项目至关重要。通过灵活...
在本项目中,“flex4.5httpservice实现搜狐焦点图新闻和特效按钮皮肤制作”涉及到的核心技术是 Flex 4.5 的 HTTPService 组件、自定义皮肤以及动态数据展示。 HTTPService 是 Flex 中用于与服务器进行 HTTP 通信的...
在实际应用中,你可能还需要处理错误事件,如`FaultEvent.FAULT`,以捕获和处理任何网络或服务器问题。 总的来说,使用Flex3的HTTPService获取JSON数据涉及创建服务实例,配置请求参数,监听结果事件,以及可能的...