我刚刚开始快速入门,我正在尝试这样做一个post请求:
import UIKit
class ViewController: UIViewController {
@IBOutlet var txtEmail: UITextField!
@IBOutlet var txtPassword: UITextField!
@IBOutlet var btnLogin: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func btnSignIn(sender: AnyObject) {
let session = NSURLSession.sharedSession()
let url = NSURL(string: "http://temp.com/api/v1/login")!
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
let task = session.dataTaskWithRequest(request) {
(data, response, error) in
guard let data = data else {print(error); return}
let result = NSString(data: data, encoding: NSUTF8StringEncoding)
print(result)
}
task.resume()
}
}
当我在Xcode中启动我的模拟器时,它显示build succeeded
,然后它在下面的代码中崩溃:
class AppDelegate:
消息:
Thread 1: signal SIGABRT
我做错了什么?当我在操场上测试它的时候,它工作了!
发布于 2016-07-03 19:32:50
它看起来在AppDelegate中崩溃了,如果不看里面的代码,我就不能准确地告诉你问题是什么。
如果删除btnSignIn
方法中的代码,它仍然会崩溃吗?
我通常这样处理我的POST请求:
let session = NSURLSession.sharedSession()
let url = NSURL(string: urlString)
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "POST"
// fill the request body, my API accepts JSON params
if let jsonData = try? NSJSONSerialization.dataWithJSONObject(parameters, options: .PrettyPrinted) {
request.HTTPBody = jsonData
} else {
print("error sending params as JSON, params: \(parameters)")
}
let task = session.dataTaskWithRequest(request) { (data, response, error) in
self.handleResponse(request, data: data, response: response, error: error, completionHandler: completionHandler)
}
task.resume()
https://stackoverflow.com/questions/38169243
复制相似问题