Flex【原創】資料請求(URLLoader/HttpService)工具類

來源:互聯網
上載者:User

提供一個常用的專門用來請求資料的工具類:

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);            }        }            }}

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.