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);
                }
            }
            
        }
    }
  • 相关阅读:
    Linux 下curl模拟Http 的get or post请求
    ShopNC学习笔记(转)
    (转) shopnc数据库操作
    Mysql开发规范
    长连接、短连接、长轮询和WebSocket
    一个支付宝没有安装app时看不到web网页,无法支付的问题
    MVVM设计模式
    c中的scanf和printf
    import和class关键字的区别
    oc中的注释
  • 原文地址:https://www.cnblogs.com/loveFlex/p/2593344.html
Copyright © 2011-2022 走看看