Vorrei recuperare il codice di stato della risposta HTTP (ad esempio 400, 401, 403, 503, ecc.) Per gli errori di richiesta (e idealmente anche per i successi). In questo codice, sto eseguendo l'autenticazione utente con HTTP di base e voglio essere in grado di inviare un messaggio all'utente che l'autenticazione non è riuscita quando l'utente digita erroneamente la password.
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")
}
Sfortunatamente, l'errore prodotto non sembra indicare che sia stato effettivamente ricevuto un codice di stato 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
Inoltre, sarebbe bello recuperare il corpo HTTP quando si verifica un errore perché il mio lato server inserirà una descrizione testuale dell'errore lì.
Domande
È possibile recuperare il codice di stato su una risposta non 2xx?
È possibile recuperare il codice di stato specifico su una risposta 2xx?
È possibile recuperare il corpo HTTP su una risposta non 2xx?
Grazie!