在请求信息中对象转换为所需对象。
使用带有从HttpService请求接受到的数据的值对象
/**
* 远程请求的处理
*
*/
private function resultHandler(event:ResultEvent,token:AsyncToken):void
{
myData=event.result.data.book;
//声明一个临时的存储对象Contact
var obj:Contact;
for(var i:int=0;i<myData.length;i++)
{
//转换为对象
obj=new Contact(myData.getItemAt(i));
//存储对象
myData.setItemAt(obj,i);
}
}
向服务器页面发送参数:
在HttpService中发送参数的两种形式:
1. 打包Actionscript Object 中已命名参数
2。在HttpService对象声明中设置绑定的参数
private function getData()
{
contactService.url="data/books.xml" ;
var responder:ItemResponder=new ItemResponder(resultHandler,faultResultHandler);
var params:Object=new Object();
params.firstname="san";
params.lastname="zhang";
//发送对象(注意此处Object动态类,可以动态的添加属性)
var token:AsyncToken=contactService.send(params);
token.addResponder(responder);
}
上面代码可以更改为:
//JSON格式
contactService.send({firstname:"san",lastname:"zhang"});
其实在HTTP处理中无论是Post还是GET发送最终传输过程均为查询字符串格式
在页面绑定控件使用如下:
<mx:HTTPService id="contactService" url="http://localhost:8080/unutrip/mm.jsp" result="resultHandler(event)">
<mx:request >
<firstname>
${txtfirstname.text}
</firstname>
<lastname>
${txtlastname.text}
</lastname>
</mx:request>
</mx:HTTPService>
在处理跨域策略问题中:所有向远程域发送的HTTP请求都需要跨域许可,其中包括使用HTTPService组件尝试检索的内容。
跨策略的文件是一个xml命名为:crossdomain.xml 并放置在远程域的web根目录中,在运行时。
格式如下:
<cross-domain-policy>
<cross-access-from domain="xx.com"/>
<cross-access-from domain="xx.mm"/>
</cross-domain-policy>