Hey millet, sorunum şu: Alamofire'ı Kullanıcıların Kimlik Doğrulamasını yapmak için bir işlev aracılığıyla çağırıyordum: "Gövde" den çağrılacak parametrelerle "Kullanıcı Girişi" işlevini kullandım (e-posta: Dize, şifre: String) Bu geçilecek
benim hatam tam olarak:
isteğe bağlı (alamofire.aferror.responseserializationfailed (alamofire.aferror.responseserializationfailurereason.jsonserializationfailed (hata etki alanı = nscocoaerrordomain code = 3840 "karakter 0 civarında geçersiz değer" userinfo = {nsdebugdescription = karakter 0 etrafında geçersiz değer
0 karakteri burada anahtardır: "e-posta" çağrısının parametrelerle eşleşmediği anlamına gelir: Aşağıdaki koda bakın
func loginUser (e-posta: Dize, şifre: Dize, tamamlandı: @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)
}
İşlev parametrelerindeki "e-posta", ayrıştırma sırasında let "e-postası" ile eşleşmelidir, o zaman işe yarayacaktır ... Artık hatayı almadım ... Ve Alamofire isteğinin "gövde" parametresindeki "e-posta" karakteri 0 idi:
Bu yardımcı olur umarım
responseJSON() { ... }
bloğu yorumlamak ve ile değiştirmektir.responseString { _, _, s, _ in println(s) }
. Bu,responseJSON