Hola chicos, esto es lo que encontré que era mi problema: estaba llamando a Alamofire a través de una función para autenticar usuarios: utilicé la función "Iniciar sesión de usuario" con los parámetros que se llamarían desde el "cuerpo" (correo electrónico: Cadena, contraseña: String) Eso se pasaría
mi error fue exactamente:
opcional (alamofire.aferror.responseserializationfailed (alamofire.aferror.responseserializationfailurereason.jsonserializationfailed (error domain = nscocoaerrordomain code = 3840 "valor inválido alrededor del carácter 0." userinfo = {nsdebugdescription = valor inválido alrededor del carácter 0
el carácter 0 es la clave aquí: lo que significa que la llamada para el "correo electrónico" no coincidía con los parámetros: consulte el código a continuación
func loginUser (correo electrónico: String, contraseña: String, completado: @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" en los parámetros de la función debe coincidir con let "email" al analizar, entonces funcionará ... Ya no recibí el error ... Y el carácter 0 era el "email" en el parámetro "body" para la solicitud de Alamofire:
Espero que esto ayude
responseJSON() { ... }
bloque y reemplazarlo con.responseString { _, _, s, _ in println(s) }
. Eso le permite ver el json que se devuelve para buscar cualquier texto extraño que lo haga no visible pararesponseJSON