Ich benutze Alamofire mit RX und ich habe ein Problem, dass, wenn der Aufruf erfolgreich ist (Status 200) gibt es keine JSON zurückgegeben. Dies löst meinen Fehlercode aus. Wenn ich den Status 400 bekomme, bekomme ich JSON, damit der Anruf in Ordnung ist.RX Alamofire Swift leere Antwort JSON
Wie gebe ich an, dass die Antwort JSON ist, aber nicht zu Fehler wenn leer und Statuscode 200?
Danke!
func createUser(httpBody: AccountDetails!) -> Observable<(NSHTTPURLResponse, AnyObject)> {
return Alamofire.Manager.rx_request(.POST,
APIService.REGISTER_ENDPOINT,
parameters: httpBody.getParameters(),
encoding: .JSON,
headers: nil)
.flatMap {
$0
.validate(statusCode: 200..<501)
.validate(contentType: ["application/json"])
.rx_responseJSON()
.map { (response:NSHTTPURLResponse, object:AnyObject) -> (NSHTTPURLResponse, AnyObject) in
return (response, object)
}
}
}
EDIT:
I fixed dies durch Ändern .rx_responseJSON(), um .rx_responseData() und Zurückkehren NSData anstelle von ANYOBJECT als zweiten Parameter. Jetzt ist der Aufruf erfolgreich und ich wandle die Daten manuell in JSON um. Nicht sicher, ob dies die richtige Lösung ist, aber es wird für jetzt ausreichen. Freut mich aber, bessere Lösungen zu hören. Danke
Besser, den Fix als Antwort zu setzen und das als Antwort zu akzeptieren :) –