Ehi ragazzi, questo è quello che ho trovato essere il mio problema: stavo chiamando Alamofire tramite una funzione per autenticare gli utenti: ho usato la funzione "Login utente" con i parametri che sarebbero stati chiamati dal "corpo" (email: String, password: String) Sarebbe passato
il mio errore era esattamente:
opzionale (alamofire.aferror.responseserializationfailed (alamofire.aferror.responseserializationfailurereason.jsonserializationfailed (error domain = nscocoaerrordomain code = 3840 "valore non valido attorno al carattere 0." userinfo = {nsdebugdescription = valore non valido intorno al carattere 0
il carattere 0 è la chiave qui: significa che la chiamata per l '"email" non corrispondeva ai parametri: vedere il codice sotto
func loginUser (email: String, password: String, complete: @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" nei parametri della funzione deve corrispondere a let "email" durante l'analisi, quindi funzionerà .. Non ho più ricevuto l'errore ... E il carattere 0 era l '"email" nel parametro "body" per la richiesta Alamofire:
Spero che questo ti aiuti
responseJSON() { ... }
blocco e sostituirlo con.responseString { _, _, s, _ in println(s) }
. Ciò ti consente di vedere il json restituito per cercare qualsiasi testo strano che lo renderebbe incomprensibile daresponseJSON