Ich bin neu bei iOS und Swift und versuche, AlamoFire 3.4.0 zu verwenden, um eine Webanfrage zu stellen. Wenn meine Anfrage erfolgreich ist, funktioniert alles einwandfrei. Wenn die Anforderung fehlschlägt, gibt der Server jedoch einen Statuscode von 300 oder höher und JSON im Antworttext mit weiteren Informationen darüber aus, warum die Anforderung fehlgeschlagen ist. Zum Beispiel erfordert die API, mit der ich rede, dass jede Anfrage authentifiziert werden muss. Wenn die Authentifizierung aus irgendeinem Grund ausfällt, werde ich wieder 401 und die JSON im Antworttext wird:JSON-Antwort von AlamoFire erhalten, wenn Anfrage fehlschlägt
{"developerMessage" : "Request failed because signature was incorrect."}
Mein Code diese Anfrage wie folgt aussieht zu machen:
let headers = [
"X-Auth-Signature" : signature
]
Alamofire.request(.GET, "https://server.com/get", headers: headers)
.validate()
.responseJSON { response in
switch response.result {
case .Success(let json)
// process JSON response here
case .Failure(let error)
print("Request failed with error: \(error)")
// how can I access the JSON in the response body from here?
}
}
Es ist mein Verständnis, dass der Anruf an .validate()
überprüfen wird, dass der Statuscode 200 - 299 ist und alles andere außerhalb dieses Bereichs in der .Failure-Fall führen wird. Angenommen, das ist richtig, wenn ich 401 zurückbekomme, wie kann ich auf den JSON im Antworttext von meinem Fehlerbehandler aus zugreifen? Vielen Dank!
Bitte beachten Sie die Antwort hier http://stackoverflow.com/a/35324741/5093900 –