我正在使用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-Script获取它应该的字符串。但是有
iOS 9中已弃用sendAsynchronousRequest
信息。
正如我读到的,使用Swift 2,方法已经改变。
我搜索了很多这个错误,但我无法将它匹配的代码转换为Swift 2.我也读过,我应该使用这样的东西
let session = NSURLSession.sharedSession()
session.dataTaskWithRequest(request)
但是我无法理解。实际上,我不了解每一行。我自己写了代码,但是从一些例子来看它对我有用。
答案 0 :(得分:2)
这是您使用共享会话的最基本方式:
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
,请参阅my blogpost。
答案 1 :(得分:0)
正如您所发现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()
}
您可以在此tutorial from raywenderlich.com
中详细了解NSURL会话希望有所帮助