大家好,这就是我遇到的问题:我通过一个用于验证用户身份的函数调用Alamofire:我使用了“登录用户”函数,并带有从“正文”中调用的参数(电子邮件:字符串,密码:字符串)将被传递
我的错误是:
可选(alamofire.aferror.responseserializationfailed(alamofire.aferror.responseserializationfailurereason.jsonserializationfailed(错误域= nscocoaerror域代码= 3840“字符0附近的无效值。” userinfo = {nsdebugdescription =字符0附近的无效值
字符0是此处的关键:表示“电子邮件”的调用与参数不匹配:请参见下面的代码
func loginUser(电子邮件:字符串,密码:字符串,完成:@转义downloadComplete){让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) }
。这可以让你看到返回寻找任何奇怪的文字,将使其unparsible由JSONresponseJSON