当我注册用户时,我得到一个状态代码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/

10-10 20:33