Привіт, хлопці, це те, що я виявив своєю проблемою: я закликав Alamofire через функцію для автентифікації користувачів: я використовував функцію "Користувач для входу" з параметрами, які будуть викликані з "тіла" (електронна адреса: рядок, пароль: Рядок) Це було б передано
моя помилка була точно:
необов’язково (alamofire.aferror.responseserializationfailed (alamofire.aferror.responseserializationfailurereason.jsonserializationfailed (error domain = nscocoaerrordomain code = 3840 "недійсне значення навколо символу 0." userinfo = {nsdebugdescription = недійсне значення навколо символу 0
символ 0 тут є ключовим: означає, що виклик "електронної пошти" не відповідав параметрам: Дивіться код нижче
func loginUser (електронна адреса: рядок, пароль: рядок, завершено: @escaping downloadComplete) {let lowerCasedEmail = email.lowercased ()
let header = [
"Content-Type" : "application/json; charset=utf-8"
]
let body: [String: Any] = [
"email": lowerCasedEmail,
"password": password
]
Alamofire.request(LOGIN_USER, method: .post, parameters: body, encoding: JSONEncoding.default, headers: header).responseJSON { (response) in
if response.result.error == nil {
if let data = response.result.value as? Dictionary<String, AnyObject> {
if let email = data["user"] as? String {
self.userEmail = email
print(self.userEmail)
}
if let token = data["token"] as? String {
self.token_Key = token
print(self.token_Key)
}
"email" у параметрах функції повинен збігатися з let "email" при синтаксичному аналізі, тоді він буде працювати .. Я більше не отримував помилку ... А символ 0 був "електронною поштою" у параметрі "body" для запиту Alamofire:
Сподіваюся, це допомагає
responseJSON() { ... }
блок і замінювати на.responseString { _, _, s, _ in println(s) }
. Це дозволяє побачити json, який повертається, щоб шукати будь-який непарний текст, який би зробив його нерозбірливим доresponseJSON