Salut, je suis encore nouveau sur Alamofire et json. Je voudrais simplement demander comment gérer une erreur sur une réponse réussie. Voici la réponse de l'api avec une requête post.
{
data = {
"cabinet_id" = 3289146811;
"created_at" = "2018-04-11T04:53:43.288023001Z";
"user_id" = 123abc;
};
}
Mais parfois, je reçois une réponse comme ci-dessous en raison d'une erreur serveur
{
error = {
"http_status_code" = 400;
message = "Impossible de procéder";
type = "rent_request_failed";
};
}
Voici ce que j'ai fait
let url = "myurl"
let parameters = ["user_id": ""\(self.idPassed)"",
"cabinet_id": "\(self.stringPassed)"]
Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.default).responseJSON { response in
if (response.result.isSuccess){
if let value = response.result.value {
//maintenant le succès ou l'échec mènera toujours ici
Helper.helper.switchToNavigationViewController(Navigation: "hundredpercent")
print(value)
}
//faites vos manipulations json
} else if (response.result.isFailure) {
//Gérez votre erreur
switch (response.error!._code){
case NSURLErrorTimedOut:
//Gérez votre erreur de délai d'attente
break
case NSURLErrorNotConnectedToInternet:
//Gérez votre erreur de non connexion à internet
break
default:
let alertt = UIAlertController(title: "Erreur serveur!", message: "Veuillez réessayer", preferredStyle: .alert)
alertt.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: {(action:UIAlertAction!) in
//besoin de naviguer ici en cas d'erreur
Helper.helper.switchToNavigationViewController(Navigation: "qrcodescan")
}))
self.present(alertt, animated: true)
}
}
}