我可以使用下面的代码在 Swift 中发送 POST 请求
func post() -> String{
let request = NSMutableURLRequest(URL: NSURL(string: "http://myserverip/myfile.php")!)
request.HTTPMethod = "POST"
let postString = "data=xxxxxxx"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
println("error=\(error)")
return
}
println("response = \(response)")
let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
println("responseString = \(responseString!)")
}
task.resume()
return "";//how would i return data here
}
我需要返回结果,但这是不可能的,因为网络请求是异步的。我想我可以使用侦听器等待结果然后返回它,但我不确定这将如何工作或如何实现它
如果有人可以提供帮助,我将不胜感激
我是 iOS 和 Swift 新手
您的帖子功能可能类似于:
func post(completionHandler: (response: String) -> ()) { your code }
在响应部分:
let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
completionHandler(response: responseString)
最后,您可以像这样调用 post 方法:
post( {(response: String) -> () in
println("response = \(response)")})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)