Get server response-Nachricht vom Fehler
Meinem server (CakePHP), reagieren Sie in etwa so:
$this->response->statusCode('400');
$this->response->type('json');
$this->response->body(json_encode(array('message' => 'Bookmark already exists')));
Den Postboten sieht die Ausgabe folgendermaßen aus, was man erwarten würde:
{"message":"Bookmark bereits existiert"}
Das problem ist, dass ich kann nicht finden, eine Möglichkeit, auf diese Nachricht aus dem Fehler-handler (Alamofire 3.1.3 + SwiftyJSON 2.3.2)
Alamofire.request(.POST...
.validate()
.responseJSON { response in
switch response.result {
case .Success(_):
//All good
case .Failure(let error):
//Status code 400
print(response.request) //original URL request
print(response.response) //URL response
print(response.data) //server data
print(response.result)
Ich kann nicht einen Weg finden, zu casten Antwort.Daten zu JSON als ich einfach null und das Ergebnis gibt nur FEHLER.
Gibt es eine Möglichkeit, den Zugriff auf diese server-Meldung aus der Fehler-handler ?
- fügen Sie swift-code
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden die Daten nicht analysiert, in die .Ausfall-Fall pro die Alamofire 3.0 migration guide. Jedoch server-Daten ist noch verfügbar in der Antwort.Daten und analysiert werden kann.
Unten sollte die Arbeit zu analysieren, manuell:
Diese verwendet SwiftyJSON, welche die JSON-Struktur zu konvertieren NSData. Analyse NSData zu JSON kann man ohne SwiftyJSON, antwortete hier.
Anderen Reiniger option könnte sein, schreiben einen Benutzerdefinierte Response Serializer.
Eine Methode mit dem router und keine SwiftyJSON:
Benutzt habe ich die folgenden Zeilen zu Lesen, die Antwort Stelle aus einer Alamofire Anfrage.
Sich mit diesem Körper kann ich meine benutzerdefinierte server-Antwort errormessage.
beste Grüße
Für Alamofire 4.0 und höher :
Versuchen, diese
Antwort.Antwort?.statusCode
url : "IHRE-URL"
Parameter: "IHRE PARAMETER "DICTIONARY"
Header: "DEIN HEADER WÖRTERBUCH"
Ich bin mit SwiftyJSON für JSON-Parsing