Я хотел бы получить код состояния ответа 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")
}
К сожалению, возникшая ошибка не указывает на то, что код состояния HTTP 409 действительно был получен:
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?
Спасибо!