zoukankan      html  css  js  c++  java
  • Flex【原创】数据请求(URLLoader/HttpService)工具类

    提供一个常用的专门用来请求数据的工具类:

    1:URLLoader方式

    2:HttpService方式

    直接上源码:

    package 
    {
        import flash.events.Event;
        import flash.events.IOErrorEvent;
        import flash.net.URLLoader;
        import flash.net.URLLoaderDataFormat;
        import flash.net.URLRequest;
        import flash.net.URLRequestMethod;
        import flash.net.URLVariables;
        
        import mx.rpc.events.FaultEvent;
        import mx.rpc.events.InvokeEvent;
        import mx.rpc.events.ResultEvent;
        import mx.rpc.http.HTTPService;
        import mx.utils.StringUtil;
    
        /**
         * <p>Data Request Delegate</p>
         * this class has tow request ways : 
         * 1 . HTTPService
         * 2 . URLLoader
         * */
        public class DataRequestDelegate
        {
            /**
             * Don't init static class
             * */
            public function DataRequestDelegate()
            {
                throw new Error("Don't init static class");
            }
            
            /**
             * requestRemoteData use HTTPService
             * @param reqUrl
             * @param parameters (default = null)
             * @param onResultHandler (default = null)
             * @param onFaultHandler (default = null)
             * @param onInvokeHandler (default = null)
             * @param resultFormat (default = "object")
             * */
            public static function requestRemoteData(reqUrl:String,parameters:Object=null,onResultHandler:Function = null,onFaultHandler:Function = null,onInvokeHandler:Function = null,resultFormat:String="object"):void
            {
                try
                {
                    reqUrl = StringUtil.trim(reqUrl);
                    var service : HTTPService = new HTTPService();
                    service.url = reqUrl;
                    service.resultFormat = resultFormat;
                    service.method = URLRequestMethod.GET;
                    if(onResultHandler != null)
                        service.addEventListener(ResultEvent.RESULT,onResultHandler);
                    if(onFaultHandler != null)
                        service.addEventListener(FaultEvent.FAULT,onFaultHandler);
                    if(onInvokeHandler != null)
                        service.addEventListener(InvokeEvent.INVOKE,onInvokeHandler);
                    service.send(parameters);
                } catch (error:Error) {
                    trace("HTTPService request remote data error : " + error.message);
                }
            }
            
            /**
             * requestRemoteData2 use URLLoader
             * @param reqUrl
             * @param parameters (default = null)
             * @param dataFormat(default = URLLoaderDataFormat.TEXT)
             * @param resultfun (default = null)
             * @param failFun (default = null)
             * */
            public static function requestRemoteData2(reqUrl:String,parameters:Object = null,dataFormat:String=URLLoaderDataFormat.TEXT,resultfun:Function = null,failFun:Function = null):void{
                try{
                    reqUrl = StringUtil.trim(reqUrl);
    //                var varVals:URLVariables = new URLVariables();
                    for(var ps:String in parameters){
    //                    varVals[ps] = postParam[ps];
                        reqUrl += ("&" + ps + "=" + parameters[ps]);
    //                    trace("varVals ---> " + varVals[ps]);
                    }
                    trace("XML get url ---> " + reqUrl);
    //                trace(urlReq.url+"?"+(urlReq.data as URLVariables).toString());
                    var urlReq:URLRequest = new URLRequest(reqUrl);
                    urlReq.method = URLRequestMethod.GET;
    //                urlReq.data = varVals;
                    var loader:URLLoader = new URLLoader();       
                    loader.dataFormat = dataFormat;
                    loader.load(urlReq); 
                    if(resultfun != null)
                        loader.addEventListener(Event.COMPLETE,resultfun);
                    if(failFun != null)
                        loader.addEventListener(IOErrorEvent.IO_ERROR,failFun);
                }catch(error:Error){
                    trace("URLLoader request remote data error : " + error.message);
                }
            }
            
        }
    }
  • 相关阅读:
    SQL命令优化
    C# 实现快捷键几种方法
    实现把dgv里的数据完整的复制到一张内存表
    DataGridView上下方向键定位
    《大型网站技术架构:核心原理与案例分析》-- 读书笔记 (2) : 大型网站核心架构要素(2) -- 可用性
    《大型网站技术架构:核心原理与案例分析》-- 读书笔记 (2) : 大型网站核心架构要素(1) -- 性能
    Solr6.7 学习笔记(01) -- 目录结构
    《大型网站技术架构:核心原理与案例分析》-- 读书笔记 (1):大型网站发展历程
    浅淡Java多线程
    java 多线程学习笔记(二) -- IO密集型任务
  • 原文地址:https://www.cnblogs.com/loveFlex/p/2593344.html
Copyright © 2011-2022 走看看