Me gustaría recuperar el código de estado de respuesta HTTP (por ejemplo, 400, 401, 403, 503, etc.) en caso de fallas en las solicitudes (e idealmente también para los éxitos). En este código, estoy realizando la autenticación de usuario con HTTP Basic y quiero poder enviar un mensaje al usuario de que la autenticación falló cuando el usuario escribe mal su contraseña.
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")
}
Desafortunadamente, el error producido no parece indicar que se haya recibido realmente un código de estado 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
Además, sería bueno recuperar el cuerpo HTTP cuando ocurre un error porque mi servidor pondrá una descripción textual del error allí.
Preguntas
¿Es posible recuperar el código de estado con una respuesta que no sea 2xx?
¿Es posible recuperar el código de estado específico con una respuesta 2xx?
¿Es posible recuperar el cuerpo HTTP en una respuesta que no sea 2xx?
¡Gracias!