Hej ludzie, oto, co uważam za mój problem: dzwoniłem do Alamofire za pomocą funkcji uwierzytelniania użytkowników: użyłem funkcji „Zaloguj się użytkownika” z parametrami, które byłyby wywoływane z „treści” (e-mail: ciąg znaków, hasło: String) To zostanie przekazane
mój błąd to dokładnie:
opcjonalne (alamofire.aferror.responseserializationfailed (alamofire.aferror.responseserializationfailurereason.jsonserializationfailed (error domain = nscocoaerrordomain code = 3840 "nieprawidłowa wartość wokół znaku 0." userinfo = {nsdebugdescription = nieprawidłowa wartość wokół znaku 0
tu kluczem jest znak 0: co oznacza, że wywołanie „e-maila” nie pasuje do parametrów: Zobacz kod poniżej
func loginUser (email: String, hasło: String, zakończone: @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” w parametrach funkcji musi być zgodny z let „email” podczas parsowania, wtedy zadziała .. Nie mam już błędu ... A znak 0 to „email” w parametrze „body” dla żądania Alamofire:
Mam nadzieję że to pomoże
responseJSON() { ... }
bloku i zastąpienie go.responseString { _, _, s, _ in println(s) }
. To pozwala zobaczyć plik json, który jest zwracany w celu wyszukania dziwnego tekstu, który uniemożliwiłby jego przeanalizowanie przezresponseJSON