2016-04-07 3 views
0

Я использую приватный api для регистрации пользователей.Alamofire: Rest api

структура АФИ Понравилось:

post data = { 
      "email": "", 
      "password": "" 
     } 

------------------------------------------ 
      return value = { 
      "result": True, 
      "message": "", 
      "token": "" 
      } 

Мой код:

Alamofire.request(.POST, url, parameters: parameters, encoding: .JSON) 
     .responseString { response in   
       guard response.result.error == nil else { 
        print(response.result.error!) 
        return 
       } 
       print(response.result.value) 
       if let value:String = response.result.value { 
        let post = JSON(value) 
        if let connection = post.dictionary { 
         let token = connection["token"]?.string 
         print(token) 
        } 
       } 
    } 

reponse.result.value возвращает файл HTML, и я не могу получить "результат", "сообщение" и значения «токена». Я пробовал несколько методов, которые я нашел из github, но не мог заставить его работать.

EDIT:

мне удалось получить ответ от API: УСПЕХА: { "сообщение": "Вы уже зарегистрированы", "результат": ложные, "маркер": asdwasdasd}

Как я собираюсь получить, например, «токен» и сохранить его?

+0

Этот HTML может содержать намек на то, что пошло не так или то, что вы делаете неправильно. Можете ли вы опубликовать его здесь? – kostek

+0

Я обновил свой вопрос –

+0

'let token = connection [" token "] ?. string' В коде у вас уже есть токен? – Tim

ответ

1

Для сохранения токенов я бы рекомендовал положить его в брелок. Если вы знакомы с NSUserDefaults, цепочка ключей действует аналогично, за исключением того, что она добавляет уровень безопасности к тому, что вы храните. (для получения дополнительной информации о том, как работает брелок, посмотрите на Apple's Keychain Documentation)

Использование брелка через API Apple может быть немного запутанным, поэтому я использую KeychainAccess library, чтобы дать мне более удобный API. Документация UICKeyChainStore дает очень краткое руководство по использованию библиотеки, поэтому я расскажу вам о ней для реализации (см. Ссылку KeychainAccess выше).

0

Я нашел решение, теперь его работает, как я хотел ...

Alamofire.request(.POST, url, parameters: parameters, encoding: .JSON) 
     .responseJSON { response in   
       guard response.result.error == nil else { 
        print(response.result.error!) 
        return 
       } 
       if let json: NSDictionary = response.result.value as? NSDictionary { 
       let result = json["result"]!.stringValue 
        print(result) 
        let token = json["token"] as! String 
        print(token) 

      } 
    }