我正在使用Alamofire。因此,在响应中有状态代码。我是否应该检查和处理所有可用的状态码情况,或者我应该如何处理这些情况。
switch response.response?.statusCode {
case 201:
print("created user")
case 400:
print("Bad request")
// ...........
default:
print(response.result.value)
}发布于 2019-04-30 09:25:11
实际上,不需要检查每个状态代码。我通常会使用下面的模板检查请求是成功还是失败。
Alamofire.request(request).responseJSON { (response) in
switch response.result {
case .success:
if let httpURLResponse = response.response {
if httpURLResponse.statusCode == 200 {
// Success
} else {
// Response Unsuccessful
}
} else {
// Response Unsuccessful
}
case .failure:
// Request Failed
}
}发布于 2019-04-30 09:32:15
您可以检查响应代码是否在200-299之间(含200-299)。这将告诉您请求已成功。任何其他代码都是失败的。
如果您想显示特定的错误,请使用响应码。这是标准response codes的列表。如果您可以控制API,请坚持使用标准代码。
发布于 2019-04-30 13:22:03
要从HTTPURLResponse获取状态码,请参阅以下几点,希望它能对您有所帮助。
if let httpResponse = response as? HTTPURLResponse {
print("error \(httpResponse.statusCode)")
if httpResponse.statusCode == 200{
//Success
}else{
//Failed
}
}else {
//Failed
}https://stackoverflow.com/questions/55912538
复制相似问题