get request with params

This commit is contained in:
2013-12-28 15:14:08 +04:00
parent acb5fe989c
commit fc2cd9aa8a
2 changed files with 13 additions and 3 deletions

View File

@@ -13,11 +13,12 @@ class BaseLoader<T> implements ILoader<T> {
private static inline var TAG:String = "Loader"; private static inline var TAG:String = "Loader";
public static var urlProcessors(default, null):Array<String->String> = new Array<String->String>(); public static var urlProcessors(default, null):Array<String->String> = new Array<String->String>();
public static function prepareUrl(url:String):String { for (p in urlProcessors) url = p(url); return url; }; public static function prepareUrl(url:String):String { for (p in urlProcessors) url = p(url); return url; }
public var busy(default, null):Bool; public var busy(default, null):Bool;
private var url:String; private var url:String;
private var method:Method;
private var data:Null<Dynamic>; private var data:Null<Dynamic>;
private var callback:ICallback<T>; private var callback:ICallback<T>;
@@ -29,6 +30,7 @@ class BaseLoader<T> implements ILoader<T> {
if (busy) throw "Busy"; if (busy) throw "Busy";
busy = true; busy = true;
this.url = url; this.url = url;
this.method = method;
this.data = data; this.data = data;
callback = new Callback<T>(); callback = new Callback<T>();
var url:String = this.url; var url:String = this.url;
@@ -95,7 +97,15 @@ class BaseLoader<T> implements ILoader<T> {
} }
public function run():Void { public function run():Void {
internalRequest(prepareUrl(url)); var u:String = url;
if (data != null && method == Method.GET) {
var a:Array<String> = [];
for (key in Reflect.fields(data)) {
a.push(key + "=" + Reflect.field(data, key));
}
u += "?" + a.join("&");
}
internalRequest(prepareUrl(u));
} }
} }

View File

@@ -1,5 +1,6 @@
package haxework.net; package haxework.net;
import haxework.net.ILoader.Method;
import flash.net.URLLoaderDataFormat; import flash.net.URLLoaderDataFormat;
import flash.events.SecurityErrorEvent; import flash.events.SecurityErrorEvent;
import flash.events.IOErrorEvent; import flash.events.IOErrorEvent;
@@ -20,7 +21,6 @@ class BaseURLLoader<T> extends BaseLoader<T> {
override private function internalRequest(url:String):Void { override private function internalRequest(url:String):Void {
loader = buildLoader(); loader = buildLoader();
var request:URLRequest = new URLRequest(url); var request:URLRequest = new URLRequest(url);
if (data != null) request.data = data;
loader.load(request); loader.load(request);
} }