Hé les gars, c'est ce que j'ai trouvé être mon problème: j'appelais Alamofire via une fonction d'authentification des utilisateurs: j'ai utilisé la fonction "Login User" avec les paramètres qui seraient appelés depuis le "body" (email: String, password: String) qui serait passé
mon erreur était exactement:
optionnel (alamofire.aferror.responseserializationfailed (alamofire.aferror.responseserializationfailurereason.jsonserializationfailed (error domain = nscocoaerrordomain code = 3840 "valeur invalide autour du caractère 0." userinfo = {nsdebugdescription = valeur invalide autour du caractère 0)
le caractère 0 est la clé ici: ce qui signifie que l'appel pour le "email" ne correspondait pas aux paramètres: Voir le code ci-dessous
func loginUser (email: String, password: String, completed: @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" dans les paramètres de fonction doit correspondre au let "email" lors de l'analyse, alors cela fonctionnera .. Je n'ai plus eu l'erreur ... Et le caractère 0 était le "email" dans le paramètre "body" pour la requête Alamofire:
J'espère que cela t'aides
responseJSON() { ... }
bloc et de le remplacer par.responseString { _, _, s, _ in println(s) }
. Cela vous permet de voir le json qui est retourné pour rechercher tout texte étrange qui le rendrait impossible parresponseJSON