gpt4 book ai didi

Swift NSMutableURLRequest URLSession 回调未被调用

转载 作者:行者123 更新时间:2023-11-30 13:15:23 25 4
gpt4 key购买 nike

我在让一个非常简单的 Swift HTTP POST 工作时遇到了一些麻烦。

我目前有简单的命令行项目,main.swift 包含

import Foundation

let url = NSURL(string: "http://127.0.0.1/input.php")!
let session = NSURLSession.sharedSession()

let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"

let paramString = "value=100&dataPointId=1"
request.HTTPBody = paramString.dataUsingEncoding(NSUTF8StringEncoding)

session.dataTaskWithRequest(request, completionHandler: {

(let data, let response, let error) in

print("callback")

guard let _:NSData = data, let _:NSURLResponse = response where error == nil else {
print("error")
return
}

let dataString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print(dataString)

}).resume()

我验证了我的 PHP 脚本可以使用 Postman 运行,但是当我运行此代码时,我什么也没得到。我正在查看 Apache 访问日志,它甚至没有尝试 HTTP 请求。

就像回调函数没有被调用一样。我希望至少能看到 print("callback") 的输出,但什么也没有发生。

我的程序是否退出得太快并且不允许回调发生?还是发生了其他事情?

这不是在 Playground 中执行,而是使用内置的 URL 处理库。

最佳答案

发现,程序在回调发生之前就退出了。在程序末尾添加了一个简单的 sleep(5) ,使其有时间完成。在常规的 Cocoa GUI 应用程序中不需要这样做,因为程序不会像这样立即退出。

关于Swift NSMutableURLRequest URLSession 回调未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38287529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com