18.1.配置HTTPService

18.1.1. 问题
我想要创建和配置一个HTTPService 组件来允许你的应用程序来与基于HTTP 的服务通讯。
18.1.2. 解决办法
为你的应用程序添加一个HTTPService 组件,设定它的url 属性为应用程序用来接受数据的URL。如果服务的反馈是XML,就需要定制的处理, 指定一个方法到组件的xmlDecode属性来处理XML 对象。
18.1.3. 讨论
HTTPService 对象提供了所有HTTP 上跑的通讯。它包含了通过GET 或者POST 方法发送的信息,以及从URL 请求上获取的信息,甚至静态的文件。HTTPService 对象可以设定result和fault 方法处理函数分别来接受mx.event.ResultEvent 对象以及mx.event.FaultEvent 对象:
+展开
-XML
<mx:HTTPService url="http://192.168.1.101/service.phpid="serviceresult="serviceResult(event)fault="serviceFault(event)">

这样可以让你处理HTTP 请求的结果内容。HTTPService 对象的result 属性可以使用HTTPService 对象的result 属性。
+展开
-XML
<mx:Image source="{service.lastResult as String}"/>

注意这个HTTPService 的lastResult 是一个对象必须被作为一个字符广播。

HTTPService 对象也可以被用来通过GET 或者POST 变量来发送信息到一个脚本使用配置好的HTTPService 对象的request 属性
+展开
-XML
<mx:HTTPService>
<mx:request xmlns="">
<id>{requestedId}</id>
</mx:request>
</mx:HTTPService>

这次发送中requestedId 属性会被包装在id 标签,然后发送到HTTPService 对象设定的URL上。

在下面的范例,一个HTTPService 对象载入了一个来自与PHP 脚本的XML。
+展开
-XML
<mx: Application xmlns:mx="http://www.adobe.com/2006/mxmlwidth="400height="300">
<mx:HTTPService url="http://localhost/service.php"
id="service"
result="serviceResult(event)fault="serviceFault(event)"
method="GETcontentType="application/xml"
useProxy="false">

<mx:request xmlns="">
<id>{requestedId}</id>
</mx:request>
</mx:HTTPService>
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
[Bindable]
private var requestedId:Number;
//trace the result of the service out
private function serviceResult(event:Event):void {
trace(service.lastResult.name);
}
// in the event that the service faults or times out
private function serviceFault(event:Event):void {
trace('broken service');
}
private function callService():void {
requestedId = input.text as Number;
service.send()
}

]]>
</mx:Script>
<mx:TextInput id="input"/>
<mx:Button label="get user nameclick="callService()"/>
<mx:Text text="{service.lastResult.name}"/>
<mx:Text text="{service.lastResult.age}"/>
</mx:Application>

这个是PHP 脚本,它会读取Flex 应用发送来的GET 变量然后返回到格式化的XML 数据
+展开
-HTML
<?php
$id_number = $_GET["id"];
echo('<id>'.$id_number.'</id><name>Todd Anderson</name><age>30</age>')
?>

加支付宝好友偷能量挖...


评论(0)网络
阅读(76)喜欢(0)flash/flex/fcs/AIR