【发布时间】:2014-12-16 10:09:16
【问题描述】:
我有自己的应用程序 api。我试图调用 api,我需要获取 json 数据作为响应。这是我的代码
import Cocoa
class ViewController: NSViewController {
@IBOutlet weak var EmailText: NSTextField!
@IBOutlet weak var PasswordText: NSSecureTextField!
@IBAction func signin(sender: AnyObject) {
println("email is \(EmailText.objectValue) and Password is \(PasswordText.objectValue)")
var url : String = "https:username:password@api.example.co/api/v3/auth/token/"
var request : NSMutableURLRequest = NSMutableURLRequest()
request.URL = NSURL(string: url)
request.HTTPMethod = "GET"
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue(), completionHandler:{ (response:NSURLResponse!, data: NSData!, error: NSError!) -> Void in
var error: AutoreleasingUnsafeMutablePointer<NSError?> = nil
let jsonResult: NSDictionary! = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error: error) as? NSDictionary
if (jsonResult != nil) {
println("\(jsonResult)")
} else {
println("Couldn't load json")
}
})
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
jsonResult 应该给我 apikey 作为 json 数据。
但是在运行 mac 应用程序时,我看到了 else 条件。由于我对 swift 和构建 mac 应用程序非常陌生,因此我无法克服这一点。
【问题讨论】:
-
别忘了设置 JSON 标头之类的?你有错误吗?你有什么回应吗?我建议你向 AfNetworking 创建的 Alamofire github.com/Alamofire/Alamofire 提出请求。
-
感谢@houguetpierre 的链接。我已经给出了 json 标头,但我得到的响应为零。有没有这样的相关链接?请帮忙
-
您是否尝试在浏览器中播放请求或使用高级休息客户端 Chrome 插件?是否可以看到等待的 JSON?可能不是字典,数据转换器返回 nil。
-
那么报什么错误??
-
检查错误并打印数据 - 打赌它是一个 html 页面