Flex中如何利用HTTPService的send(),将参数传递给HTTPService
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.ValidationResultEvent;
import mx.utils.StringUtil;
private function submit_click(evt:MouseEvent):void {
var result:ValidationResultEvent = stringValidator.validate();
var params:Object = {};
lbl.text = "";
switch (result.type) {
case ValidationResultEvent.INVALID:
Alert.show(result.message, result.type);
break;
case ValidationResultEvent.VALID:
params["name"] = StringUtil.trim(firstName.text);
httpServ.send(params);
break;
}
}
]]>
</mx:Script>
<mx:StringValidator id="stringValidator"
source="{firstName}"
property="text"
minLength="2"
maxLength="{firstName.maxChars}" />
<mx:HTTPService id="httpServ">
<mx:resultFormat>flashvars</mx:resultFormat>
<mx:url>http://www.flash-mx.com/mm/greeting.cfm</mx:url>
<mx:result>lbl.text = httpServ.lastResult.welcomeMessage;</mx:result>
<mx:fault>Alert.show(event.toString(), event.type);</mx:fault>
</mx:HTTPService>
<mx:ApplicationControlBar dock="true">
<mx:Form>
<mx:FormItem label="Name:" required="true"
direction="horizontal">
<mx:TextInput id="firstName"
maxChars="20" />
<mx:Button label="Submit"
click="submit_click(event);" />
</mx:FormItem>
</mx:Form>
</mx:ApplicationControlBar>
<mx:Label id="lbl" fontSize="32" />
</mx:Application>
返回数据的格式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 方法。
From
http://shang.iteye.com/blog/419909
http://shang.iteye.com/blog/419908