json - 快速读取在线 JSON 文件

标签 json swift nsurlsession

我正在尝试使用找到的示例读取在线 JSON 文件 here .除非我运行它,否则它看起来很简单。它在 dataTaskWithURL 调用中一直失败,并且 error.localizedDescription 是“操作无法完成。(NSURLErrorDomain -1005.)”我已经查找了错误代码,它指的是 NSURLErrorNetworkConnectionLost 但我已连接到互联网,当我尝试时在浏览器中使用相同的 url,我收到 JSON 结果。

func searchItunes() {
    let urlPath = "http://itunes.apple.com/search?term=JQ+Software&media=software"
    let url: NSURL = NSURL(string: urlPath)
    let session = NSURLSession.sharedSession()
    let task = session.dataTaskWithURL(url, completionHandler: {
        data, response, error  in
        if(error != nil) {
            println(error.localizedDescription)
        }
        else {
            var err: NSError?
            var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary
            if(err != nil) {
                println("JSON Error \(err!.localizedDescription)")
            }
            else {
                // process data here.
            }
        }
    })
    task.resume()
}

最佳答案

这应该可行,但请注意,您上面的粘贴在 else block 中有一个额外的 }),在下面有一个额外的 }。这样我就可以成功地完成上述工作。如果您的括号在您的代码中匹配,那么您的浏览器中可能正在使用某种中间代理,但不是 swift,反之亦然,这会导致发生更改。

请注意,后台线程需要一小段时间来解决,因此如果您的程序在后台线程完成下载之前终止,您将看不到任何内容。

关于json - 快速读取在线 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25898981/

相关文章:

swift - 操作无法完成。 (kCLErrorDomain 错误 1。)

json - 解析 JSON API 响应

java - 未调用 JQuery

swift - 如何防御性地创建 Rx Observables 并避免竞争条件?

ios - 使用多个 NSURLSessiond 在后台获取时调用完成处理程序

swift - 子类 URLSession iOS 10

ios - NSURLSession didReceiveChallenge 只调用一次

json - 无法将类型* json.RawMessage的表达式转换为golang中的[] byte类型

javascript - jqPlot 的 JSON

ios - 仅在模拟器 iPhone6 中首次启动期间的位置权限问题 - XCode 9.4.1