Hai teman-teman, inilah yang saya temukan sebagai masalah saya: Saya memanggil Alamofire melalui fungsi untuk Mengautentikasi Pengguna: Saya menggunakan fungsi "Pengguna Login" Dengan parameter yang akan dipanggil dari "tubuh" (email: String, sandi: String) Itu akan dilewatkan
kesalahan saya persis:
opsional (alamofire.aferror.responseserializationfailed (alamofire.aferror.responseserializationfailurereason.jsonserializationfailed (domain kesalahan = kode nscocoaerrordomain = 3840 "nilai tidak valid di sekitar karakter 0." userinfo = {nsdebugdescription = nilai tidak valid di sekitar karakter 0
karakter 0 adalah kuncinya di sini: artinya panggilan untuk "email" tidak cocok dengan parameter: Lihat kode di bawah ini
func loginUser (email: String, password: String, selesai: @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" dalam parameter fungsi harus cocok dengan biarkan "email" saat parsing maka itu akan berfungsi .. Saya tidak lagi mendapat kesalahan ... Dan karakter 0 adalah "email" di parameter "body" untuk permintaan Alamofire:
Semoga ini membantu
responseJSON() { ... }
blok dan mengganti dengan.responseString { _, _, s, _ in println(s) }
. Itu memungkinkan Anda melihat json yang dikembalikan untuk mencari teks ganjil yang akan membuatnya tidak dapat dibaca olehresponseJSON