Свифт http-запрос использовать urlSession

Я хочу написать func для HTTP-запроса на мой сервер и получить некоторые данные, когда я его печатаю (print (responseString)), он выглядит хорошо, но когда я пытаюсь вернуть данные, он всегда пуст

public func HTTPRequest(dir: String, param: [String:String]?) -> String{
    var urlString = HOST + dir + "?"
    var responseString = ""
    if param != nil{
        for currentParam in param!{
            urlString += currentParam.key + "=" + currentParam.value + "&"
        }
    }

    let url = URL(string: urlString)

    let task = URLSession.shared.dataTask(with: url!) { data, response, error in
        guard error == nil else {
            print("ERROR: HTTP REQUEST ERROR!")
            return
        }
        guard let data = data else {
            print("ERROR: Empty data!")
            return
        }
        responseString = NSString(data: data,encoding: String.Encoding.utf8.rawValue) as! String
        print(responseString)
    }
    task.resume()
    return responseString
}

Ответы на вопрос(2)

Ваш ответ на вопрос