Olá pessoal, descobri que era o meu problema: estava chamando o Alamofire através de uma função para autenticar usuários: usei a função "Login do usuário" com os parâmetros que seriam chamados a partir do "corpo" (e-mail: String, senha: String) Isso seria aprovado
meu erro foi exatamente:
opcional (alamofire.aferror.responseserializationfailed (alamofire.aferror.responseserializationfailurereason.jsonserializationfailed (domínio do erro = nscocoaerrordomain code = 3840 "valor inválido em torno do caractere 0." userinfo = {nsdebugdescription = valor inválido em torno do caractere 0
o caractere 0 é a chave aqui: o que significa que a chamada para o "e-mail" não correspondia aos parâmetros: Veja o código abaixo
func loginUser (email: String, password: String, concluído: @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" nos parâmetros de função deve corresponder a "email" let ao analisar, então ele funcionará .. Eu não recebi mais o erro ... E o caractere 0 era o "email" no parâmetro "corpo" para a solicitação Alamofire:
Espero que isto ajude
responseJSON() { ... }
bloco e substituir por.responseString { _, _, s, _ in println(s) }
. Isso permite que você veja o json que é retornado para procurar qualquer texto estranho que o tornaria incomparável porresponseJSON