您的位置:首页 > 理论基础 > 计算机网络

AS3.0 网络加载Http请求工具类

2017-03-30 11:39 295 查看
// ActionScript file
package anUtil
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.IEventDispatcher;
import flash.events.ProgressEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLVariables;

public class UrlUtil extends Sprite
{
private var  _Tag:String;
/**
* 用于进行URL访问,
* @param Url:URL连接
* @param  Mode:交互的方式,POST或者GET
* @param  data:传过来的参数
* @param  Tag:标志,确定调用者身份
* @retrun boolean:是否成功执行
* */
public function UrlUtil(Url:String,Mode:String,data:Object,Tag:String)
{
Main.loadingTag++;
_Tag=Tag;
switch(Mode)
{
case  "Login" : Login(Url,Mode,data); break;
case  "Get" :   Get(Url,Mode); break;
case  "POST" :  Post(Url,Mode,data as URLVariables); break;
}
}

private function Get(Url:String,Mode:String):void{
var loader:URLLoader = new URLLoader();
//添加监听器
configureListeners(loader);
var request:URLRequest=new URLRequest(Url);
request.method = URLRequestMethod.GET;
try {
loader.load(request);
} catch (error:Error) {
trace("URL-GET请求失败,error:"+error.message);
}
}
private function Post(Url:String,Mode:String,variables:URLVariables):void{
var loader:URLLoader = new URLLoader();
//添加监听器
configureListeners(loader);
var request:URLRequest=new URLRequest(Url);
request.method = URLRequestMethod.POST;
request.data=variables;
try {
loader.load(request);
} catch (error:Error) {
trace("URL-POST请求失败,error:"+error.message);
}
}
private function Login(Url:String,Mode:String,data:Object):void{
var loader:URLLoader = new URLLoader();
//添加监听器
configureListeners(loader);
var request:URLRequest=new URLRequest(Url);
request.method = URLRequestMethod.POST;
//建立URLVariables对象
var variables:URLVariables = new URLVariables();
//需要传递的参数
variables.systemID = data.systemID;
variables.cipher = data.cipher;
request.data=variables;
try {
loader.load(request);
} catch (error:Error) {
trace("URL-POST请求失败,error:"+error.message);
}
}

private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
}
private function completeHandler(event:Event):void{
//		  trace("加载完成");
var e:MyEvent=new MyEvent("UrlLoaderComp");
e.string=URLLoader(event.target).data;
e.tag=_Tag;
dispatchEvent(e);
//		  trace("测试"+e.tag+"aaa"+e.string);
}
private function progressHandler(event:ProgressEvent):void
{
var i:Number=Math.round(event.bytesLoaded/event.bytesTotal*100);
//	  trace("已加载字节:" + event.bytesLoaded + " 总字节: " + event.bytesTotal+" 当前进度:"+i+"%");
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: