Hey Leute, das ist mein Problem: Ich habe Alamofire über eine Funktion zum Authentifizieren von Benutzern aufgerufen: Ich habe die Funktion "Login User" mit den Parametern verwendet, die vom "body" aufgerufen werden (E-Mail: String, Passwort: String) Das würde übergeben werden
Mein Fehler war genau:
optional (alamofire.aferror.responseserializationfailed (alamofire.aferror.responseserializationfailurereason.jsonserializationfailed) (Fehlerdomäne = nscocoaerrordomain code = 3840 "ungültiger Wert um Zeichen 0." userinfo = {nsdebugdescription = ungültiger Wert um Zeichen 0
Zeichen 0 ist hier der Schlüssel: Dies bedeutet, dass der Aufruf für die "E-Mail" nicht mit den Parametern übereinstimmte: Siehe den folgenden Code
func loginUser (E-Mail: String, Passwort: String, abgeschlossen: @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" in den Funktionsparametern muss mit dem let "email" beim Parsen übereinstimmen, dann funktioniert es. Ich habe den Fehler nicht mehr erhalten ... Und Zeichen 0 war die "email" im "body" -Parameter für die Alamofire-Anfrage:
Hoffe das hilft
responseJSON() { ... }
Block zu kommentieren und durch zu ersetzen.responseString { _, _, s, _ in println(s) }
. Das können Sie die json sehen, die Look für jeden ungeraden Text zurückgegeben wird , die es unparsible durch machen würderesponseJSON