2016-05-06 8 views
1

ユーザーにサインアップすると、ステータスコード200とトークン "JSON"が返されます。 ユーザーが既に存在する場合、JSONの代わりにステータスコード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) 
      } 
     } 

答えて

0

あなたはすでにそれを一つの方法を扱っているように見える - JSONパーサーオブジェクトを作成できないことが、応答がHTMLであることを推測するために使用することができ、しかし、その無効なJSonが返された場合、誤った推論になります。

もう1つの方法は、HTTPヘッダーコンテンツタイプを調べることです.1つの状況では、ヘッダーコンテンツタイプはjsonと他のhtmlを示す必要があります。