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);
            }
        }
        
    }
}
原文地址:https://www.cnblogs.com/loveFlex/p/2593344.html