ios - Swift - 发送 POST 请求时从 NSURLSession 返回数据

标签 ios xcode swift post nsurlconnection

我可以使用以下代码在 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( {(response: String) -> () in
               println("response = \(response)")})

关于ios - Swift - 发送 POST 请求时从 NSURLSession 返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31007582/

相关文章:

swift - Firebase DB : If I place observer on posts, 每当单个帖子发生更改时,是否都会返回所有嵌套帖子?

ios - React Native iOS 从应用程序文档文件夹中读取图像

IOS - 删除或修改在后台访问位置的权限

ios - ionic 电容器在 ios 13.3 设备上部署应用程序卡住启动画面

ios - Xcode 上的多个 UIwebView

swift - 如何快速修改父 View Controller 的 subview Controller 对象

ios - 为什么我的 MapKit 标注 View 这么小,没有显示它需要显示的所有内容?

ios - 是否可以从公钥和私钥创建 SecIdentityRef?

ios - 谷歌 AdMob - "initialized without an application id"错误

ios - 无法继续提取的图像