class_name HttpTransport extends RefCounted ## Sends HTTP requests for [code]MusicServerClient[/code] using [HTTPRequest] nodes. ## ## Tests subclass this to answer requests without a network connection. var _owner: Node func _init(owner: Node) -> void: _owner = owner ## Requests [param url] and calls [param on_complete] with ## [code](response_code: int, body: PackedByteArray)[/code]. Connection errors are ## reported with response code 0. func request(url: String, method: int, on_complete: Callable) -> void: var http_request: HTTPRequest = HTTPRequest.new() _owner.add_child(http_request) http_request.request_completed.connect( func( result: int, response_code: int, _headers: PackedStringArray, body: PackedByteArray, ) -> void: http_request.queue_free() on_complete.call(response_code if result == HTTPRequest.RESULT_SUCCESS else 0, body) ) var headers: PackedStringArray = [] if method == HTTPClient.METHOD_PUT: headers.append("Content-Type: application/json") var error: int = http_request.request(url, headers, method) if error != OK: http_request.queue_free() push_error("Could not send request to %s (error %d)" % [url, error]) on_complete.call(0, PackedByteArray())