我刚接触在线请求。我正在使用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),这确实有用......我不知道它是如何可能的,但是它可以与服务器端有关吗?
答案 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")