Ich möchte den HTTP-Antwortstatuscode (z. B. 400, 401, 403, 503 usw.) für Anforderungsfehler (und idealerweise auch für Erfolge) abrufen. In diesem Code führe ich eine Benutzerauthentifizierung mit HTTP Basic durch und möchte dem Benutzer mitteilen können, dass die Authentifizierung fehlgeschlagen ist, wenn der Benutzer sein Kennwort falsch eingibt.
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")
}
Leider scheint der erzeugte Fehler nicht darauf hinzudeuten, dass tatsächlich ein HTTP-Statuscode 409 empfangen wurde:
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
Außerdem wäre es schön, den HTTP-Body abzurufen, wenn ein Fehler auftritt, da meine Serverseite dort eine Textbeschreibung des Fehlers einfügt.
Fragen
Ist es möglich, den Statuscode bei einer Nicht-2xx-Antwort abzurufen?
Ist es möglich, den spezifischen Statuscode bei einer 2xx-Antwort abzurufen?
Ist es möglich, den HTTP-Body bei einer Nicht-2xx-Antwort abzurufen?
Vielen Dank!