【发布时间】:2026-02-05 21:35:01
【问题描述】:
我想为我的服务器编写 HTTP 请求的 func 并获取一些数据,当我打印它时 (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
}
【问题讨论】:
-
你需要使用完成块而不是返回值
标签: swift http request urlsession