我刚刚开始快速,我正在尝试发出这样的发布请求:
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 中启动模拟器时,它显示构建成功
,然后在以下情况下崩溃:
class AppDelegate:
消息:
Thread 1: signal SIGABRT
我做错了什么?当我在 Playground 上测试它时,它有效!
最佳答案
看起来它在 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()
关于xcode - 网络请求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38169243/