📄 urlrequesthelper.as.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 + -