⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 urlrequesthelper.as.svn-base

📁 用Flex开发的RSS通用阅读器
💻 SVN-BASE
字号:
package cn.iservice.delegates
{   
    
    import cn.iservice.event.LoadFinishEvent;
    import cn.iservice.util.ServerResult;
    
    import com.adobe.serialization.json.JSON;
    
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;
    
    import mx.controls.Alert;


    public class URLRequestHelper extends Sprite {		
    		
		private var requestUrl:String = "";		
		private var params:String = "";
		
		/**
		 * Constructor
		 */ 
        public function URLRequestHelper(requestUrl:String,params:String) {
            this.requestUrl = requestUrl;
            this.params = params;
        }
        
        public function callServer():void{
        	 var loader:URLLoader = new URLLoader();           	
            configureListeners(loader);
            var request:URLRequest = new URLRequest(requestUrl);
            if(this.params!=""){
              var vars:URLVariables =  new URLVariables(params);         
              request.data = vars;
            }           
            request.method = "POST";
            try {
                loader.load(request);
            } catch (error:Error) {
                trace("Unable to load requested document." + error.getStackTrace());
                Alert.show("Unable to load requested document. Cause By:["+error.message+"]");
            }
        }
        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        }
		/**
		 * 处理返回的结果,如果返回正常则派发加载完毕的事件,借以传递有用的数据到显示逻辑,
		 * 如果发生了服务器错误,或返回的信息不正常,则弹出提示框,告诉用户发生了异常。
		 */ 
        private function completeHandler(event:Event):void {
            var loader:URLLoader = URLLoader(event.target);
            var data:Object = loader.data;
            if(data != null){
            	var dataStr:String = data.toString().replace( /\s/g, '')
                var obj:Object = JSON.decode(dataStr);                
                if(systemMsgHandler(obj)){
                   var loadFinishEvent:LoadFinishEvent = new LoadFinishEvent(LoadFinishEvent.LOADFINISHED,obj);	
			       LoadFinishEvent._eventDispatcher.dispatchEvent(loadFinishEvent);
                }              					             
            }else{
            	Alert.show("Unable to load requested data.");
            }                               
        }
				
        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
        /**
        * 判断是否发生了系统级的错误,如果是,则弹出提示信息。
        */ 
        public function systemMsgHandler(obj:Object):Boolean{
        	var msgObj:Object = obj.systemMessage;
        	var returnObj:Object = obj.returnData;	
        	if(msgObj!=null){
   				var resultType:String = msgObj.result;
   				if(resultType == ServerResult.ERROR||resultType == ServerResult.FAILED||resultType == ServerResult.SESSION_TIMEOUT){
   					Alert.show(msgObj.value);
   					/**如果发生了错误,或失败则退出处理.*/
   					return new Boolean(false);
   				}else{
   					if(returnObj != null)
   				       return new Boolean(true);
   				    else
   				       return new Boolean(false);
   				}
   			}else{
   				return new Boolean(false);
   			} 
        }
        
        public function setRequestUrl(requestUrl:String):void{
			this.requestUrl = requestUrl;
		}
		public function setParams(params:String):void{
			this.params = params;
		}
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -