Я хотів би отримати код статусу відповіді HTTP (наприклад, 400, 401, 403, 503 тощо) для збоїв у запиті (а в ідеалі і для успіхів). У цьому коді я здійснюю автентифікацію користувача за допомогою HTTP Basic і хочу, щоб я міг повідомити користувачеві про те, що аутентифікація не вдалася, коли користувач вводить неправильний пароль.
Alamofire.request(.GET, "https://host.com/a/path").authenticate(user: "user", password: "typo")
.responseString { (req, res, data, error) in
if error != nil {
println("STRING Error:: error:\(error)")
println(" req:\(req)")
println(" res:\(res)")
println(" data:\(data)")
return
}
println("SUCCESS for String")
}
.responseJSON { (req, res, data, error) in
if error != nil {
println("JSON Error:: error:\(error)")
println(" req:\(req)")
println(" res:\(res)")
println(" data:\(data)")
return
}
println("SUCCESS for JSON")
}
На жаль, видана помилка не вказує на те, що код статусу 409 HTTP був дійсно отриманий:
STRING Error:: error:Optional(Error Domain=NSURLErrorDomain Code=-999 "cancelled" UserInfo=0x7f9beb8efce0 {NSErrorFailingURLKey=https://host.com/a/path, NSLocalizedDescription=cancelled, NSErrorFailingURLStringKey=https://host.com/a/path})
req:<NSMutableURLRequest: 0x7f9beb89d5e0> { URL: https://host.com/a/path }
res:nil
data:Optional("")
JSON Error:: error:Optional(Error Domain=NSURLErrorDomain Code=-999 "cancelled" UserInfo=0x7f9beb8efce0 {NSErrorFailingURLKey=https://host.com/a/path, NSLocalizedDescription=cancelled, NSErrorFailingURLStringKey=https://host.com/a/path})
req:<NSMutableURLRequest: 0x7f9beb89d5e0> { URL: https://host.com/a/path }
res:nil
data:nil
Крім того, було б непогано отримати тело HTTP, коли з’явиться помилка, оскільки моя сторона сервера помістить там текстовий опис помилки.
Запитання
Чи можливо отримати код статусу у відповіді, що не є 2xx?
Чи можливо отримати конкретний код статусу після відповіді 2xx?
Чи можливо отримати тіло HTTP при відповіді, що не є 2xx?
Дякую!