Sto colpendo un'API che occasionalmente genera un errore HTTP 403 e il corpo della risposta può fornire alcune informazioni aggiuntive sotto forma di JSON, tuttavia per la vita di me non riesco a recuperare le informazioni da gli oggetti di risposta Alamofire. Vedo le informazioni negli strumenti di sviluppo se colpisco l'API tramite chrome. Ecco il mio codice:Un modo per ottenere il corpo della risposta durante gli errori HTTP?
Alamofire.request(mutableURLRequest).validate().responseJSON() {
(response) in
switch response.result {
case .Success(let data):
if let jsonResult = data as? NSDictionary {
completion(jsonResult, error: nil)
} else if let jsonArray = data as? NSArray {
let jsonResult = ["array" : jsonArray]
completion(jsonResult, error: nil)
}
case .Failure(let error):
//error tells me 403
//response.result.data can't be cast to NSDictionary or NSArray like
//the successful cases, how do I get the response body?
}
ho interrogato praticamente ogni oggetto attaccato alla risposta, ma non mi sembra dare al corpo risposta indietro nel caso di errori HTTP. C'è un work-around o qualcosa che mi manca qui?
E ora (XC8.1, Swift 3) quella codifica è: 'String (dati: dati, codifica: String.Encoding.utf8)' – Dilapidus
Se si utilizza 'SwiftyJSON', è anche possibile:' JSON (response.data!) ' –