41 lines
1.0 KiB
Haxe
41 lines
1.0 KiB
Haxe
|
package kha.network;
|
||
|
|
||
|
import js.html.XMLHttpRequest;
|
||
|
|
||
|
class Http {
|
||
|
static function methodToString(method: HttpMethod): String {
|
||
|
switch (method) {
|
||
|
case Get:
|
||
|
return "GET";
|
||
|
case Post:
|
||
|
return "POST";
|
||
|
case Put:
|
||
|
return "PUT";
|
||
|
case Delete:
|
||
|
return "DELETE";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static function request(url: String, path: String, data: String, port: Int, secure: Bool, method: HttpMethod, headers: Map<String, String>,
|
||
|
callback: Int->Int->String->Void /*error, response, body*/): Void {
|
||
|
var req = new XMLHttpRequest("");
|
||
|
var completeUrl = (secure ? "https://" : "http://") + url + ":" + port + "/" + path;
|
||
|
req.open(methodToString(method), completeUrl, true);
|
||
|
if (headers != null) {
|
||
|
for (key in headers.keys()) {
|
||
|
req.setRequestHeader(key, headers[key]);
|
||
|
}
|
||
|
}
|
||
|
req.onreadystatechange = function() {
|
||
|
if (req.readyState != 4)
|
||
|
return;
|
||
|
if (req.status != 200) {
|
||
|
callback(1, req.status, null);
|
||
|
return;
|
||
|
}
|
||
|
callback(0, req.status, req.responseText);
|
||
|
}
|
||
|
req.send(data);
|
||
|
}
|
||
|
}
|