当我注册用户时,我得到一个状态代码200和一个令牌:“JSON back”。
如果用户已经存在,那么我将获得状态代码200和HTML响应而不是JSON。我该如何处理这个问题。提前谢谢。
我所做的是-
switch httpResponse.statusCode {
case 200:
// 2. Create JSON object with data
do {
let jsonDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [String: AnyObject]
print(jsonDictionary!)
if let jsonDictionaryOne = jsonDictionary {
let authToken = AuthToken(tokenDictionary: jsonDictionaryOne)
completion(authToken)
}
} catch {
print("Fetch failed: \((error as NSError).localizedDescription)")
dispatch_async(dispatch_get_main_queue()) {
let authToken = AuthToken(tokenDictionary: ["token":"none"])
completion(authToken)
}
}
最佳答案
看起来您已经在用一种方式处理它了——无法创建JSon解析器对象可以用来推断响应是html,但是如果返回无效的JSon,这将是不正确的推断。
因此,另一种方法是检查HTTP头内容类型,在一种情况下,头内容类型应该指示json,在另一种html中。
关于ios - 有关注册问题的JSON数据处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37077348/