Flex远程访问获取数据--HTTPService

Posted gaoshengchao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flex远程访问获取数据--HTTPService相关的知识,希望对你有一定的参考价值。

编写service类:

package services {
    import com.adobe.serialization.json.JSON;
    
    import log.LogUtil;
    
    import mx.collections.ArrayCollection;
    import mx.collections.XMLListCollection;
    import mx.controls.Alert;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.http.mxml.HTTPService;
    
    
    public class CategoryService extends HTTPService {
        [Bindable]
        public var categoryArray:ArrayCollection;
        public var testFlag:Boolean = true;
        
        public function CategoryService(rootURL:String=null, destination:String=null) {
            super(rootURL, destination);
            this.url = "http://192.168.1.210:8081/xxx.action";
//url为远程请求接口
            addEventListener(ResultEvent.RESULT, handleCategoryResult);
            
        }
        
        private function handleCategoryResult(event:ResultEvent):void{
            var rawData:String =  String(event.result);
            trace(rawData);
            LogUtil.debug("CategoryService",rawData);
            var o:Object = com.adobe.serialization.json.JSON.decode(rawData);//对结果进行json转换  
            categoryArray = new ArrayCollection(o.result);
        }    
        
                
        
    }
}

结果集接收之后进行json格式转换,需要导入as3corelib.swc
在XML中引入:

  

<fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
        <services:CategoryService id="categoryService"/>
    </fx:Declarations>

在方法中调用:

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
             xmlns:s="library://ns.adobe.com/flex/spark" 
             xmlns:mx="library://ns.adobe.com/flex/mx" width="342" height="60" xmlns:services="services.*" initialize="group1_initializeHandler(event)">
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
        <services:CategoryService id="categoryService"/>
    </fx:Declarations>
    
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.events.FlexEvent;
            
            import spark.events.IndexChangeEvent;
            
                        
              
            protected function group1_initializeHandler(event:FlexEvent):void
            {
                if(categoryService.testFlag){
                    categoryService.localTest();
                }else{
                    categoryService.send();
                }
                
                
            }
            
        ]]>
    </fx:Script>
    
       <s:DropDownList id="categoryList" x="92" y="29" width="174"
                dataProvider="{categoryService.categoryArray}"
                labelField="name"
                prompt="请选择"
                change="updateSelection(event);"
                />
    

    
</s:Group>

 

以上是关于Flex远程访问获取数据--HTTPService的主要内容,如果未能解决你的问题,请参考以下文章

从动态 HTTPService 异步获取数据以填充 Advanced Data Grid Flex

Flex HttpService:附加到目的地

在 Flex 中的组件初始化期间设置变量

在Flex中进行组件初始化期间设置变量

我们可以抓到flex的HTTPservice的数据包吗

Flex- Singleton 的属性绑定到 HttpService 属性没有被更新