我使用的是XCode 7.3。这是我的代码:
func postToServerFunction() {
let url: NSURL = NSURL(string: "http://mytesturl.com")!
let request:NSMutableURLRequest = NSMutableURLRequest(URL:url)
//let textfeld = String(UserTextField.text)
let bodyData = "data=" + UserTextField.text!
request.HTTPMethod = "POST"
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding);
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue())
{
(response, data, error) in}}
这很好用,我的php脚本得到了它应该得到的字符串。但是sendAsynchronousRequest
在iOS 9中已弃用消息正如我所读到的,Swift 2的方法已经改变了。我搜索了很多这个错误,但我无法将它匹配的代码转换为Swift 2。正如我所读到的,我应该使用类似于的东西
let session = NSURLSession.sharedSession()
session.dataTaskWithRequest(request)
但我无法把它放下。事实上,我并不理解每一行。代码是我自己写的,但从一些例子来看,它对我有效。
这是使用共享会话的最基本方式:
if let url = NSURL(string: "http://mytesturl.com"),
userField = UserTextField.text {
let request = NSMutableURLRequest(URL: url)
let bodyData = "data=" + userField
request.HTTPMethod = "POST"
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding)
let session = NSURLSession.sharedSession()
let dataTask = session.dataTaskWithRequest(request,completionHandler: {(data,response,error) in
}
)
dataTask.resume()
}
有关其他方法的更多详细信息,包括后台会话和临时会话,以及如何处理NUSRLResponse
,请参阅我的博客文章。
正如您所发现的,NSURLConnection
已经被弃用,而NSURLSession
是新的亮点。
为了使您的示例发挥作用,您仍然需要使用已经创建的NSURL
和NSURLRequest
,然后您需要一个可以以各种方式使用的NSURLSession
。
我可以看到你已经使用了回调,所以在你的情况下,我认为它将是
session.dataTaskWithRequest(request) { (data, response, error) in
//magic goes here
}
然后需要记住的重要事项是在执行任务时调用resume()
。
所以。。。为了翻译你的代码,我在想一些类似的事情
func postToServerFunction() {
let url: NSURL = NSURL(string: "http://mytesturl.com")!
let request:NSMutableURLRequest = NSMutableURLRequest(URL:url)
//let textfeld = String(UserTextField.text)
let bodyData = "data=" + UserTextField.text!
request.HTTPMethod = "POST"
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding)
let session = NSURLSession.defaultSession()
let task = session.dataTaskWithRequest(request) { (data, response, error) in
//magic goes here
}
task.resume()
}
您可以在本教程中从raywenderlich.com 阅读更多关于NSURL会话的信息
希望对有所帮助