안녕하세요 여러분, 이것이 제 문제인 것으로 나타났습니다. 사용자 인증을위한 함수를 통해 Alamofire를 호출했습니다. "body"에서 호출되는 매개 변수와 함께 "Login User"함수를 사용했습니다 (email : String, password : 문자열) 전달됩니다.
내 어음은 정확히 :
optional (alamofire.aferror.responseserializationfailed (alamofire.aferror.responseserializationfailurereason.jsonserializationfailed (error domain = nscocoaerrordomain code = 3840 "invalid value around character 0."userinfo = {nsdebugdescription = 문자 0 주변의 잘못된 값
여기에서 문자 0이 핵심입니다. "email"에 대한 호출이 매개 변수와 일치하지 않음을 의미합니다. 아래 코드를 참조하십시오.
func loginUser (email : String, password : String, completed : @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"은 구문 분석 할 때 let "email"과 일치해야합니다. 그러면 작동합니다. 더 이상 오류가 발생하지 않습니다. 문자 0은 Alamofire 요청에 대한 "body"매개 변수의 "email"이었습니다.
도움이 되었기를 바랍니다
responseJSON() { ... }
블록을 주석 처리하고.responseString { _, _, s, _ in println(s) }
. 그러면 해석 할 수없는 이상한 텍스트를 찾기 위해 반환되는 json을 볼 수 있습니다.responseJSON