Ho utilizzato Alamofire in uno dei miei progetti iOS, ma di recente durante l'aggiornamento ad Alamofire 3.0 il formato è leggermente cambiato per la restituzione dei risultati. Nel mio caso, desidero chiamare un'API di accesso e restituire il risultato. Ci sono un paio di errori che potrebbero accadere, quindi restituisco sempre il risultato dell'API quale sia il problema, quindi vorrei che il mio codice vada in un blocco di errore se la risposta è un 400 e quindi includo il messaggio dalla mia API come parte dell'errore, ma non riesco a sembrare così ottenere i dati di risposta dalla richiesta quando il risultato è un fallimento.Ottenere i dati di risposta da Alamofire errore
Ecco il mio codice:
Alamofire.request(
method,
Constants.baseURL + route,
parameters: fullParameters)
.validate()
.responseJSON { response in
let json = JSON(response.result.value!)
switch response.result {
case .Success:
completion?(json["data"])
case .Failure(let errorData):
failure?(errorData, json["errmsg"])
}
}
Quello che sta accadendo in questo, è che quando la risposta è un fallimento, si rompe a causa response.result.value è pari a zero, ma vorrei che fosse il JSON restituito dall'API, non importa cosa. Quando la risposta è un successo, d'altra parte funziona perfettamente.
Questo lo ha risolto, grazie mille! :) – Henry