Привет, ребята, вот что я обнаружил в своей проблеме: я звонил в Alamofire через функцию аутентификации пользователей: я использовал функцию «Войти в систему» с параметрами, которые будут вызываться из «тела» (электронная почта: строка, пароль: String) Это будет передано
моя ошибка была именно такой:
необязательный (alamofire.aferror.responserializationfailed (alamofire.aferror.responserializationfailurereason.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 был "email" в параметре "body" для запроса Alamofire:
Надеюсь это поможет
responseJSON() { ... }
блок и заменить его на.responseString { _, _, s, _ in println(s) }
. Это позволяет вам увидеть возвращаемый json для поиска любого нечетного текста, который может сделать его неразборчивым поresponseJSON