Xin chào các bạn, đây là điều tôi thấy là vấn đề của mình: Tôi đang gọi Alamofire qua một chức năng Xác thực Người dùng: Tôi đã sử dụng chức năng "Đăng nhập Người dùng" Với các tham số sẽ được gọi từ "body" (email: Chuỗi, mật khẩu: Chuỗi) Điều đó sẽ được thông qua
sai lầm của tôi chính xác là:
tùy chọn (alamofire.aferror.responseserialization không thành công (alamofire.aferror.responseserializationfailurereason.jsonserialization không thành công (error domain = nscocoaerrordomain code = 3840 "giá trị không hợp lệ xung quanh ký tự 0" userinfo = {nsdebugdescription = giá trị không hợp lệ xung quanh ký tự 0
ký tự 0 là khóa ở đây: nghĩa là lệnh gọi cho "email" không khớp với các tham số: Xem đoạn mã bên dưới
func loginUser (email: String, mật khẩu: String, hoàn thành: @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" trong tham số hàm phải khớp với let "email" khi phân tích cú pháp thì nó mới hoạt động..Tôi không còn gặp lỗi nữa ... Và ký tự 0 là "email" trong tham số "body" cho yêu cầu Alamofire:
Hi vọng điêu nay co ich
responseJSON() { ... }
khối và thay thế bằng.responseString { _, _, s, _ in println(s) }
. Cho phép bạn xem các json được trả về để nhìn cho bất kỳ văn bản lẻ mà có thể làm nó unparsible bởiresponseJSON