Je voudrais récupérer le code d'état de la réponse HTTP (par exemple 400, 401, 403, 503, etc.) pour les échecs de demande (et idéalement pour les réussites aussi). Dans ce code, j'effectue une authentification utilisateur avec HTTP Basic et je souhaite pouvoir envoyer un message à l'utilisateur indiquant que l'authentification a échoué lorsque l'utilisateur a mal saisi son mot de passe.
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")
}
Malheureusement, l'erreur produite ne semble pas indiquer qu'un code d'état HTTP 409 a effectivement été reçu:
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
De plus, il serait bien de récupérer le corps HTTP lorsqu'une erreur se produit car mon serveur y mettra une description textuelle de l'erreur.
Questions
Est-il possible de récupérer le code d'état sur une réponse non-2xx?
Est-il possible de récupérer le code d'état spécifique sur une réponse 2xx?
Est-il possible de récupérer le corps HTTP sur une réponse non-2xx?
Merci!