Flex与后台交互的4种方法 HTTPService、URLLoader、WebService详解

简介: HTTPService Xml代码        private function initializeHandler(event:Event):void {  countriesService.
HTTPService
Xml代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)">  
  3. <mx:Script>  
  4. <![CDATA[  
  5. private function initializeHandler(event:Event):void {  
  6. countriesService.send();  
  7. }  
  8. private function changeHandler(event:Event):void {  
  9. statesService.send();  
  10. }  
  11. ]]>  
  12. </mx:Script>  
  13. <!-- 载入纯静态的xml数据 -->  
  14. <mx:HTTPService id="countriesService" url="http://www.rightactionscript.com/states/xml/countries.xml" />  
  15. <!-- 载入由php生成的xml数据 -->  
  16. <mx:HTTPService id="statesService" url="http://www.rightactionscript.com/states/xml/states.php">  
  17. <!-- 以下标签就是要发送到服务端的数据了,可以这样理解:有一个名为country的变量,它的值为花括号{}里的内容 -->  
  18. <mx:request>  
  19. <country>{country.value}</country>  
  20. </mx:request>  
  21. </mx:HTTPService>  
  22. <mx:VBox>  
  23. <!-- 此控件的数据由第一个<mx:HTTPService/>控件接收的内容提供,并且由这个ComboBox控制着第二个ComboBox所要显示的内容 -->  
  24. <mx:ComboBox id="country" dataProvider="{countriesService.lastResult.countries.country}"  
  25. change="changeHandler(event)" />  
  26. <!-- 下面的ComboBox已经绑定了{statesService.lastResult.states.state},随它的数据改变而改变 -->  
  27. <mx:ComboBox dataProvider="{statesService.lastResult.states.state}" />  
  28. </mx:VBox>  
  29. </mx:Application>  
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)">
<mx:Script>
<![CDATA[
private function initializeHandler(event:Event):void {
countriesService.send();
}
private function changeHandler(event:Event):void {
statesService.send();
}
]]>
</mx:Script>
<!-- 载入纯静态的xml数据 -->
<mx:HTTPService id="countriesService" url="http://www.rightactionscript.com/states/xml/countries.xml" />
<!-- 载入由php生成的xml数据 -->
<mx:HTTPService id="statesService" url="http://www.rightactionscript.com/states/xml/states.php">
<!-- 以下标签就是要发送到服务端的数据了,可以这样理解:有一个名为country的变量,它的值为花括号{}里的内容 -->
<mx:request>
<country>{country.value}</country>
</mx:request>
</mx:HTTPService>
<mx:VBox>
<!-- 此控件的数据由第一个<mx:HTTPService/>控件接收的内容提供,并且由这个ComboBox控制着第二个ComboBox所要显示的内容 -->
<mx:ComboBox id="country" dataProvider="{countriesService.lastResult.countries.country}"
change="changeHandler(event)" />
<!-- 下面的ComboBox已经绑定了{statesService.lastResult.states.state},随它的数据改变而改变 -->
<mx:ComboBox dataProvider="{statesService.lastResult.states.state}" />
</mx:VBox>
</mx:Application>


URLLoader


Xml代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)">  
  3. <mx:Script>  
  4. <![CDATA[  
  5. private var _countriesService:URLLoader;  
  6. private var _statesService:URLLoader;  
  7. private function initializeHandler(event:Event):void {  
  8. _countriesService = new URLLoader();  
  9. _countriesService.addEventListener(Event.COMPLETE, countriesCompleteHandler);  
  10. _countriesService.load(new URLRequest("http://www.rightactionscript.com/states/xml/countries.xml"));  
  11. _statesService = new URLLoader();  
  12. _statesService.addEventListener(Event.COMPLETE, statesCompleteHandler);  
  13. XML.ignoreWhitespace = true;  
  14. }  
  15. private function countriesCompleteHandler(event:Event):void {  
  16. var xml:XML = new XML(_countriesService.data);  
  17. country.dataProvider = xml.children();  
  18. }  
  19. private function statesCompleteHandler(event:Event):void {  
  20. var xml:XML = new XML(_statesService.data);  
  21. state.dataProvider = xml.children();  
  22. }  
  23. private function changeHandler(event:Event):void {  
  24. var request:URLRequest = new URLRequest("http://www.rightactionscript.com/states/xml/states.php");  
  25. var parameters:URLVariables = new URLVariables();  
  26. parameters.country = country.value;  
  27. request.data = parameters;  
  28. _statesService.load(request);  
  29. }  
  30. ]]>  
  31. </mx:Script>  
  32. <mx:VBox>  
  33. <mx:ComboBox id="country" change="changeHandler(event)" />  
  34. <mx:ComboBox id="state" />  
  35. </mx:VBox>  
  36. </mx:Application>  
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)">
<mx:Script>
<![CDATA[
private var _countriesService:URLLoader;
private var _statesService:URLLoader;
private function initializeHandler(event:Event):void {
_countriesService = new URLLoader();
_countriesService.addEventListener(Event.COMPLETE, countriesCompleteHandler);
_countriesService.load(new URLRequest("http://www.rightactionscript.com/states/xml/countries.xml"));
_statesService = new URLLoader();
_statesService.addEventListener(Event.COMPLETE, statesCompleteHandler);
XML.ignoreWhitespace = true;
}
private function countriesCompleteHandler(event:Event):void {
var xml:XML = new XML(_countriesService.data);
country.dataProvider = xml.children();
}
private function statesCompleteHandler(event:Event):void {
var xml:XML = new XML(_statesService.data);
state.dataProvider = xml.children();
}
private function changeHandler(event:Event):void {
var request:URLRequest = new URLRequest("http://www.rightactionscript.com/states/xml/states.php");
var parameters:URLVariables = new URLVariables();
parameters.country = country.value;
request.data = parameters;
_statesService.load(request);
}
]]>
</mx:Script>
<mx:VBox>
<mx:ComboBox id="country" change="changeHandler(event)" />
<mx:ComboBox id="state" />
</mx:VBox>
</mx:Application>




WebService 方法一


Xml代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)">  
  3. <mx:Script>  
  4. <![CDATA[  
  5. private function initializeHandler(event:Event):void {  
  6. statesService.getCountries();  
  7. }  
  8. private function changeHandler(event:Event):void {  
  9. statesService.getStates(country.value);  
  10. }  
  11. ]]>  
  12. </mx:Script>  
  13. <mx:WebService id="statesService"  
  14. wsdl="http://www.rightactionscript.com/states/webservice/StatesService.php?wsdl">  
  15. <mx:operation name="getCountries" />  
  16. <mx:operation name="getStates" />  
  17. </mx:WebService>  
  18. <mx:VBox>  
  19. <mx:ComboBox id="country"  
  20. dataProvider="{statesService.getCountries.lastResult}" change="changeHandler(event)" />  
  21. <mx:ComboBox dataProvider="{statesService.getStates.lastResult}" />  
  22. </mx:VBox>  
  23. </mx:Application>  
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)">
<mx:Script>
<![CDATA[
private function initializeHandler(event:Event):void {
statesService.getCountries();
}
private function changeHandler(event:Event):void {
statesService.getStates(country.value);
}
]]>
</mx:Script>
<mx:WebService id="statesService"
wsdl="http://www.rightactionscript.com/states/webservice/StatesService.php?wsdl">
<mx:operation name="getCountries" />
<mx:operation name="getStates" />
</mx:WebService>
<mx:VBox>
<mx:ComboBox id="country"
dataProvider="{statesService.getCountries.lastResult}" change="changeHandler(event)" />
<mx:ComboBox dataProvider="{statesService.getStates.lastResult}" />
</mx:VBox>
</mx:Application>


WebService 方法二


Xml代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)">  
  3. <mx:Script>  
  4. <![CDATA[  
  5. private function initializeHandler(event:Event):void {  
  6. statesService.getCountries.send( );  
  7. }  
  8. private function changeHandler(event:Event):void {  
  9. statesService.getStates.send( );  
  10. }  
  11. ]]>  
  12. </mx:Script>  
  13. <mx:WebService id="statesService" wsdl="http://www.rightactionscript.com/states/webservice/StatesService.php?wsdl">  
  14. <mx:operation name="getCountries" />  
  15. <mx:operation name="getStates">  
  16. <mx:request>  
  17. <country>{country.value}</country>  
  18. </mx:request>  
  19. </mx:operation>  
  20. </mx:WebService>  
  21. <mx:VBox>  
  22. <mx:ComboBox id="country"  
  23. dataProvider="{statesService.getCountries.lastResult}" change="changeHandler(event)" />  
  24. <mx:ComboBox dataProvider="{statesService.getStates.lastResult}" />  
  25. </mx:VBox>  
  26. </mx:Application>  
目录
相关文章
|
Web App开发 XML 前端开发
一起谈.NET技术,Flex 数据访问 WebService 使用参数(下)
  上一篇介绍Flex的WebService的使用,可以调用多种类型的数据,都是直接调用,没有使用参数,本篇学习使用参数调用WebService,WebService的参数类型可以是:简单类型(如数值,字串串等),简单实体模型(只有属性),比较复杂的实体模型(内陷其他实体),以及集合,XML等。
778 0
|
Web App开发 XML 前端开发
一起谈.NET技术,Flex 数据访问 WebService (上)
  Flex 支持格式设置为 SOAP 消息且通过 HTTP 传输的 Web 服务请求和结果。SOAP 提供基于 XML 格式的定义,用于在 Web 服务客户端(如使用 Flex 构建的应用程序)和 Web 服务之间交换结构化和类型化信息。
917 0
|
C# 网络架构 缓存
C# 通过HttpWebRequest在后台对WebService进行调用
通过HttpWebRequest在后台对WebService进行调用 http://www.cnblogs.com/macroxu-1982/archive/2009/12/23/1630415.html http://www.
1216 0
|
JSON 前端开发 JavaScript
asp.net :使用jquery 的ajax +WebService+json 实现无刷新去后台值
首先贴上Jquery的ajax:   代码 $.ajax({ url: 'ws_Ajax.asmx/BindDictByUpper', type: 'POST', contentType...
1032 0
|
7月前
|
缓存 应用服务中间件 数据库
Python Web Service开发及优化
随着互联网的快速发展,Web服务已成为现代技术的核心。Python作为一种功能强大且易于学习的编程语言,在Web服务开发领域占据着重要地位。Python Web服务开发的重要性在于它能够提供高效、可扩展且易于维护的解决方案。本篇博客将探讨如何使用Python的Flask框架、Gunicorn WSGI服务器和Nginx网页服务器来实现高性能的Web服务。
|
7月前
|
XML Java 应用服务中间件
WebService - Axis2基于JAX-WS开发WebService并发布多个WebService
WebService - Axis2基于JAX-WS开发WebService并发布多个WebService
92 0
|
7月前
|
Java 应用服务中间件 Spring
WebService - Axis2使用services.xml进行开发server与client(未与Spring整合)
WebService - Axis2使用services.xml进行开发server与client(未与Spring整合)
158 0