0
votes

Comment gérer les codes d'état HTTP?

J'utilise Alamofire. Par conséquent, dans la réponse, il y a des codes de statut. Devrais-je vérifier et gérer chaque cas de code d'état disponible ou que dois-je faire pour les gérer?

switch response.response?.statusCode {
                case 201:
                    print("created user")
                case 400:
                    print("Bad request")

                // ...........
                default:
                    print(response.result.value)
}


0 commentaires

5 Réponses :


0
votes

Il n'y a pas besoin de vérifier pour chaque code d'état. Ce que je ferais normalement, c'est de vérifier si la demande est réussie ou échoue à l'aide du modèle ci-dessous.

Alamofire.request(request).responseJSON { (response) in

    switch response.result {
    case .success:
        if let httpURLResponse = response.response {
            if httpURLResponse.statusCode == 200 {
                // Success
            } else {
                // Response Unsuccessful
            }
        } else {
            // Response Unsuccessful
        }
    case .failure:
        // Request Failed
    }

}


1 commentaires

Oui mais je veux savoir quelle erreur est lancée pour que je puisse les montrer à l'utilisateur. Je construis mon propre API



0
votes

Vous pouvez vérifier que le code de réponse est compris entre 200-299 inclus. Cela vous dira que la demande a été réussie. Tout autre code est, échec.

Si vous souhaitez afficher des erreurs spécifiques, utilisez des codes de réponse. Ceci est une liste de standard Codes de réponse . Si vous avez le contrôle sur API, tenez-vous à des codes standard.


1 commentaires

Oui mais je veux savoir quelle erreur est lancée pour que je puisse les montrer à l'utilisateur. Je construis mon propre API



0
votes
    httpResponse = response as! HTTPURLResponse
    print(httpResponse.statusCode) // this will shown the status code so you can easily get which type of error code is generate

    if(httpResponse.statusCode == 200)
    {
        //Success
    } 
    else
    {
        //Failure
    }

  You can check the types of error
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

5 commentaires

Oui mais je veux savoir quelle erreur est lancée pour que je puisse les montrer à l'utilisateur. Je construis mon propre API


Cela vous aidera en.wikipedia.org/wiki/list_of_http_status_codes


Oui, mais par exemple, si je prends le code 400 qui est une mauvaise demande et 401 qui est non autorisé, je veux suivre chaque cas et les montrer à l'utilisateur. Pour cela, je dois hCeck chaque code de statut disponible ou non?


Vous devez définir l'utilisation de l'API pour un code d'état différent


que veux-tu dire?



0
votes

Voir le point suivant pour obtenir le code d'état de httpurlreesponse code>, j'espère que cela vous aide.

if let httpResponse = response as? HTTPURLResponse {
     print("error \(httpResponse.statusCode)")
     if httpResponse.statusCode == 200{
         //Success
     }else{
         //Failed
     }
}else {
     //Failed
}


1 commentaires

Oui mais je veux savoir quelle erreur est lancée pour que je puisse les montrer à l'utilisateur. Je construis mon propre API



0
votes

Vous n'avez normalement pas besoin de connaître le code d'erreur spécifique, de savoir si la demande a été réussie ou non. Mais je pouvais voir pour un outil de développeur ou quelque chose de similaire que vous voudrez peut-être afficher le code actuel.

Quelque chose comme ça serait bon, il n'est pas vraiment nécessaire de vérifier le cas de tout code de statut possible. xxx


0 commentaires