Jos*_*hba 6 xcode ios swift alamofire
这是我第一次使用Alamofire
它,它让我非常沮丧.
我正在使用以下代码在后端API上调用注册API
Alamofire.request(.POST, "\(self.authBaseURL)/signup", parameters: params, headers: headers, encoding: .JSON)
.validate(statusCode: 200..<300)
.validate(contentType: ["application/json"])
.responseJSON { response in
switch response.result {
case .Success(let JSON):
print("Success with JSON: \(JSON)")
success(updatedUser)
case .Failure(let error):
print("Request failed with error: \(error)")
failure(error)
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我在.Failure
函数中获得的错误对象不包含服务器端消息.我试图访问其余的对象(请求,响应,数据,结果)我无法在任何地方找到我的错误消息
无论服务器消息说什么,我总是会收到以下错误.请求失败并显示错误:
FAILURE:Error Domain = com.alamofire.error Code = -6003"响应状态代码不可接受:400"UserInfo = {NSLocalizedFailureReason =响应状态代码不可接受:400}
我在做什么有什么不对吗?
Swift 2.2,AlamoFire 3.3.0,Xcode 7.3
Jos*_*hba 11
我设法让它按照我想要的方式工作,通过删除状态验证并手动检查statusCode
Alamofire.request(.POST, "\(self.authBaseURL)/signup", parameters: params, headers: headers, encoding: .JSON)
.validate(contentType: ["application/json"])
.responseJSON { response in
if response.response?.statusCode == 200 {
print("Success with JSON: \(response.result.value)")
success(updatedUser)
}
else {
let error = response.result.value as! NSDictionary
let errorMessage = error.objectForKey("message") as! String
print(errorMessage)
failure(errorMessage)
}
}
Run Code Online (Sandbox Code Playgroud)