Flex httpservice返回值类型和处理 (转)
这两天在考虑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返回值类型和处理 (转)的更多相关文章
- C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解 ...
- ajaxpro返回值类型总结-DataTable(转)
ajaxpro使用总结系列其他内容 ajaxpro ajaxmethod 重载调用问题 ajaxpro方法ajaxmethod调用示例 ajaxpro返回值类型总结-string,int ajaxpr ...
- Asp.net MVC 中Controller返回值类型ActionResult
[Asp.net MVC中Controller返回值类型] 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必 ...
- MATLAB importdata函数返回值类型
importdata函数是MATLAB中I/O文件操作的一个重要函数.需要注意的是,针对不同的文件内容,importdata函数的返回值类型也有所不同. MATLAB帮助文档中的详细说明如下: Bas ...
- Controller 中Action 返回值类型 及其 页面跳转的用法
•Controller 中Action 返回值类型 View – 返回 ViewResult,相当于返回一个View 页面. -------------------------------- ...
- 对象作为返回值类型&&链式编程
package com.imooc; class Student{ public void study(){ System.out.println("学生学习"); } } cla ...
- Java学习笔记13---如何理解“子类重写父类方法时,返回值若为类类型,则必须与父类返回值类型相同或为其子类”
子类重新实现父类的方法称重写:重写时可以修改访问权限修饰符和返回值,方法名和参数类型及个数都不可以修改:仅当返回值为类类型时,重写的方法才可以修改返回值类型,且必须是父类方法返回值的子类:要么就不修改 ...
- WebApi 接口返回值类型详解 ( 转 )
使用过Webapi的园友应该都知道,Webapi的接口返回值主要有四种类型 void无返回值 IHttpActionResult HttpResponseMessage 自定义类型 此篇就围绕这四块分 ...
- java.lang.IllegalArgumentException异常 返回值类型的问题
java.lang.IllegalArgumentException: Cannot create TypedQuery for query with more than one return usi ...
随机推荐
- Redis和Memcache的区别分析
1. Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别. 2. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构 ...
- 【贪心】最大乘积-贪心-高精度-java
问题 G: [贪心]最大乘积 时间限制: 1 Sec 内存限制: 128 MB提交: 34 解决: 10[提交][状态][讨论版] 题目描述 一个正整数一般可以分为几个互不相同的自然数的和,如3 ...
- OSG addEventHandler W键 L键 F键
// add the state manipulator viewer->addEventHandler( new osgGA::StateSetManipulator(viewer-&g ...
- Android中如何让手机屏幕不待机
在Android中,申请WakeLock可以让你的进程持续执行即使手机进入睡眠模式,比较实用的是比如后台有网络功能,可以保证操作持续进行. 方法: 在操作之前加入 PowerManager pm = ...
- Repairing Company(poj 3216)
题目大意: 有Q个地点,告诉你Q个地点之间的相互距离(从i地点赶到j地点需要的时间).有M项任务, 给你M项任务所在的地点block.开始时间start和任务完成需要时间time.一个工人只有在 他准 ...
- struts2 标签问题----escape="false" 这个属性
1.在编程过程中,会遇到这个动西,escape="false" eg: <s:fielderror escape="false"/>-------& ...
- Fresco 源码分析(三) Fresco服务端处理(2) Producer具体实现的内容
我们以mProducerFactory.newNetworkFetchProducer()为例,因为这些创建新的producer的方式类似,区别在于是否有包装的处理器,即如果当前处理器中没有正在处理的 ...
- Js 正则表达式特殊字符含义
字符 匹配 \o null \t 制表符 \n 换行符 \v 垂直制表符 \f 换页符 \r 回车符 \xnn 由十六进制nn指定的拉丁字符 ...
- 【Ubuntu日常技巧】【解决】Ubuntu 16 右上角的音量调节通知框不停地闪烁问题
一. 先上干货 解决问题 1.1 安装工具alsa-tools-gui sudo apt-get install alsa-tools-gui 1.2 通过hdajackretask设置 直接执行命令 ...
- gitlab+TortoiseGit中使用SSH
1.在文件夹空白位置右键打开"Git Bash" 2.按 https://gitlab.yourhost.com/help/ssh/ssh.md 中的说明,输入命令 ssh-k ...