当使用Alamofire和SwiftyJSON从URL获取JSON时,链接返回nil并崩溃我的应用程序

时间:2016-04-17 11:39:57

标签: json swift url alamofire swifty-json

我刚接触在线请求。我正在使用Alamofire和swiftyJSON从URL获取数据,但它一直在崩溃,说该链接回馈为零。是因为提供的链接最终不是.json吗? (顺便说一句我添加的链接是假的,不能添加真实的链接,但结构是一样的。)

$this->view->params['customParam'] = 'customValue';

该链接只包含以下数据:

let URL = "https://www.thisurlisntreal.com/api/folder?key="12345FGhbfdgn3456fgdnf2345redfs?56"
        Alamofire.request(.GET, URL).validate().responseJSON { response in
            switch response.result {
            case .Success:
                if let value = response.result.value {
                    let json = JSON(value)
                    print("JSON: \(json)")
                }
            case .Failure(let error):
                print(error)
            }
        }

我在{"results":[{"id":1,"fromDate":"2015-03-18","toDate":"2016-04-23","url":"blabliebloe","producer":{"id":1,"name":"theproducer"}}]} 告诉我Alamofire.request(.GET, URL).validate().responseJSON { response in时遇到了崩溃。我使用多个格式化程序和验证程序检查了JSON,并且它都是成功的,所以这不是问题。

更新 我只是使用了一个不同的链接(https://forums.virtualbox.org/viewtopic.php?f=6&t=55070),这确实有用......我不知道它是如何可能的,但是它可以与服务器端有关吗?

2 个答案:

答案 0 :(得分:0)

尝试更换这样的开关声明:

switch response.result {
                case .Success(let data):
                    let json = JSON(data)
                case .Failure(let error):
                    print(error.localizedDescription())
                }

答案 1 :(得分:0)

也许您应该检查您的URLRequest是否设置正确,以期望使用其中一行的json答案:

mutableURLRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
mutableURLRequest.setValue("application/json", forHTTPHeaderField: "Accept")