extends Node #class_name Backend var cancel_http_func: Callable = func(http: HTTPRequest): http.cancel_request() if http.is_inside_tree(): remove_child(http) func request(url: String, callback: Callable, body: Dictionary = {}, method: int = HTTPClient.METHOD_GET, cancel_callback: Array = []) -> Error: var data = JSON.stringify(body) var headers = [] var http = HTTPRequest.new() http.use_threads = true add_child(http) var err = http.request(url, headers, method, data) cancel_callback.append(cancel_http_func.bind(http)) var res = await http.request_completed # If calling object is freed without canceling request if not callback.is_valid(): return ERR_INVALID_PARAMETER callback.call(res[0], res[1], res[2], res[3]) remove_child(http) return err func request_raw(url: String, callback: Callable, data: PackedByteArray, method: int = HTTPClient.METHOD_GET, cancel_callback: Array = []) -> Error: var headers = [] var http = HTTPRequest.new() http.use_threads = true add_child(http) var err = http.request_raw(url, headers, method, data) cancel_callback.append(cancel_http_func.bind(http)) var res = await http.request_completed # If calling object is freed without canceling request if not callback.is_valid(): return ERR_INVALID_PARAMETER callback.call(res[0], res[1], res[2], res[3]) remove_child(http) return err