利用HTTPService实现Flex与服务器端低数据量通信
2011-06-18 11:07
323 查看
Flex作为企业级的开发平台,与服务器端的通信是至关重要的。传统的Flash与服务器端主要通过HTTP、WebService和Flash Remoting方式通信,Flex除了保留了Flash平台与服务端通信方式外增加了一系列的高级服务功能。Flex与服务端通信主要分为两大类:一类是通过传统的HTTP方式发送请求来和服务器端进行交互,另外一类则是通过LCDS等与服务端进行通信。
低数据量的通信我们一般会选择Http方式来进行通信。通过HTTP方式Flex可以与任意服务器端进行通信。通过HTTP与服务器端通信又可以通过 HTTP请求方式和WebService实现。前者使用异步的HTTP请求方式,使用方式与Ajax一致,而后者则是通过标准的WebService协议与服务端进行通信。下面我们看下HTTPService方式的通信,查阅相关的帮助文档我们可以知道HTTPService一些常用的方法和属性:
属性
method:发送HTTP请求的方法
url : 请求服务的位置
request:发送请求的参数
requestTimeout:请求超时的时间
useProxy:是否使用代理的别名服务
方法:
send:参数为object类型默认为null,返回值类型为AsyncToken,执行一个HTTPService的请求
下面我们通过一个获取新浪体育新闻汇总的示例来说明HTTPService的使用
Code
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="sinaSport.send()">
<mx:Style>
global
{
fontSize:14pt;
}
</mx:Style>
<mx:HTTPService id="sinaSport" url="http://rss.sina.com.cn/roll/sports/hot_roll.xml" useProxy="false">
</mx:HTTPService>
<mx:Panel x="53" y="90" width="975" height="461" layout="absolute" title="新浪体育要闻汇总 ">
<mx:DataGrid id="sportContent" x="23.5" y="10" width="911.5" dataProvider="{sinaSport.lastResult.rss.channel.item}" height="175">
<mx:columns>
<mx:DataGridColumn width="300" headerText="标题" dataField="title"/>
<mx:DataGridColumn width="150" headerText="作者" dataField="author" />
<mx:DataGridColumn width="150" headerText="日期" dataField="pubDate" />
</mx:columns>
</mx:DataGrid>
<mx:TextArea x="23" y="193" width="912" height="183" htmlText="{sportContent.selectedItem.description}"/>
<mx:LinkButton x="855" y="384" label="详细信息" click="navigateToURL(new URLRequest(sportContent.selectedItem.link))"/>
</mx:Panel>
</mx:Application>
示例运行效果如下图:
在上面的代码中通过 如下代码声明了HTTPService 数据的位置
Code
<mx:HTTPService id="sinaSport" url="http://rss.sina.com.cn/roll/sports/hot_roll.xml" useProxy="false">
</mx:HTTPService>
通过
Code
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="sinaSport.send()">
进行数据的发送
服务器端返回的结果则是通过sinaSport.lastResult来引用最后通过DataGrid来显示数据。
从这个简单的例子我们可以看出因为HTTPService不是标准协议,基于HTTPService的通信方式访问的数据格式是由服务端来制定的,所以在使用中要求Flex端与服务端的数据处理方式和交换格式一致。基于HTTP协议访问一般都通过纯文本数据进行传输。Flex能够轻松的将之转换为 ActionScript对象。
低数据量的通信我们一般会选择Http方式来进行通信。通过HTTP方式Flex可以与任意服务器端进行通信。通过HTTP与服务器端通信又可以通过 HTTP请求方式和WebService实现。前者使用异步的HTTP请求方式,使用方式与Ajax一致,而后者则是通过标准的WebService协议与服务端进行通信。下面我们看下HTTPService方式的通信,查阅相关的帮助文档我们可以知道HTTPService一些常用的方法和属性:
属性
method:发送HTTP请求的方法
url : 请求服务的位置
request:发送请求的参数
requestTimeout:请求超时的时间
useProxy:是否使用代理的别名服务
方法:
send:参数为object类型默认为null,返回值类型为AsyncToken,执行一个HTTPService的请求
下面我们通过一个获取新浪体育新闻汇总的示例来说明HTTPService的使用
Code
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="sinaSport.send()">
<mx:Style>
global
{
fontSize:14pt;
}
</mx:Style>
<mx:HTTPService id="sinaSport" url="http://rss.sina.com.cn/roll/sports/hot_roll.xml" useProxy="false">
</mx:HTTPService>
<mx:Panel x="53" y="90" width="975" height="461" layout="absolute" title="新浪体育要闻汇总 ">
<mx:DataGrid id="sportContent" x="23.5" y="10" width="911.5" dataProvider="{sinaSport.lastResult.rss.channel.item}" height="175">
<mx:columns>
<mx:DataGridColumn width="300" headerText="标题" dataField="title"/>
<mx:DataGridColumn width="150" headerText="作者" dataField="author" />
<mx:DataGridColumn width="150" headerText="日期" dataField="pubDate" />
</mx:columns>
</mx:DataGrid>
<mx:TextArea x="23" y="193" width="912" height="183" htmlText="{sportContent.selectedItem.description}"/>
<mx:LinkButton x="855" y="384" label="详细信息" click="navigateToURL(new URLRequest(sportContent.selectedItem.link))"/>
</mx:Panel>
</mx:Application>
示例运行效果如下图:
在上面的代码中通过 如下代码声明了HTTPService 数据的位置
Code
<mx:HTTPService id="sinaSport" url="http://rss.sina.com.cn/roll/sports/hot_roll.xml" useProxy="false">
</mx:HTTPService>
通过
Code
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="sinaSport.send()">
进行数据的发送
服务器端返回的结果则是通过sinaSport.lastResult来引用最后通过DataGrid来显示数据。
从这个简单的例子我们可以看出因为HTTPService不是标准协议,基于HTTPService的通信方式访问的数据格式是由服务端来制定的,所以在使用中要求Flex端与服务端的数据处理方式和交换格式一致。基于HTTP协议访问一般都通过纯文本数据进行传输。Flex能够轻松的将之转换为 ActionScript对象。
相关文章推荐
- 【转】Flex4:利用HttpService与ASP.NET传输JSON数据(登录为例)
- Flex中使用HTTPService与服务器端交换数据
- 用HTTPService实现flex与jsp的通信
- 使用asx3m与xstream配合解决flex与java利用httpservice传递xml数据问题
- Flex : 利用HTTPService DataGrid从XML文件中加载数据
- Flex 与外部的数据通信(HTTPService,URLLoader和URLRequest)
- Flex 利用ActionScript接口实现Module模块间的数据通信
- 使用asx3m与xstream配合解决flex与java利用httpservice传递xml数据问题
- flex学习笔记6-----数据通信HTTPService
- java Web与Flex通过HTTP service 通信 并解析Map 数据。
- Flex中使用HTTPService与服务器端交换数据
- Flex中使用HTTPService与服务器端交换数据
- Flex4:利用HttpService与ASP.NET传输JSON数据(登录为例)
- Flex中如何利用mx:HTTPService标签读取文本文件中的name/value这样的一对数据并显示在DataGrid中的例子
- Flex与外部数据通信URLLoader、HTTPService、 WebService
- 使用asx3m与xstream配合解决flex与java利用httpservice传递xml数据问题
- flex 通过HTTPService与php通信
- Android之利用HTTP网络通信实现与PHP的交互(三)
- jQuery利用XMLHttpRequest()和FormData()实现同时上传文件和数据
- flex php httpservice通信简单例子