forked from LeenkxTeam/LNXSDK
		
	
		
			
				
	
	
		
			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);
 | 
						|
	}
 | 
						|
}
 |