IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Code erreur HTTP


Sujet :

Android

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut Code erreur HTTP
    Bonjour,

    J'ai effectué une application android qui va communiquer avec un serveur qui va effectuer du traitement sur une base de donnée.

    La question est-celle-ci: les codes erreurs HTTP 200 ... sont gérer par le développeur du site web ou c'est généré automatiquement dans la couche basse.

    Par exemple , je vais effectuer une requête POST avec un paramètre qui se trouve être un numéro de Livre .

    Je souhaiterais que le serveur me réponde par un code retour si la requête est correcte puis par un autre code si le livre existe ou pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    StatusLine statusLine = response.getStatusLine();
    if (statusLine.getStatusCode() == HttpStatus.SC_OK) {
     
    }
    Pouvez vous me dire comment c'est gérer?

    Merci.

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Les codes de retours HTTP sont comme leur nom l'indiques liées au protocole HTTP.
    Y inclure des règles métiers va plus te pertuber qu'autre chose, du style du ne saura pas si c'est une erreur de communication ou une erreur du métier.
    Il vaut mieux, à mon sens, que tu analyses plutôt le résultat (si la communication s'est bien déroulé) afin de savoir si ta requête post à bien été pris en compte par le serveur.
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    si le code retour est 200, le serveur doit m'envoyer du json ou xml par exemple (résultat de la requête).

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    oui c'est ça
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Points : 177
    Points
    177
    Par défaut
    ça dépend si tu fais du restfull le code HTTP a son importance.

    ex : 404 = ressource not found veut dire que l’élément que tu recherches n'existe pas !

    C'est bcp plus parlant que d'avoir 200 = ok, mais je regarde le message pour voir que l'objet n'a pas été trouvé

    Mieux, si tu t'interface avec un portail qui nécessite une authent. Si l'authent
    renvoie toujours 200, t'es comme un con a parser la réponse... alors qu'avec un code 401, ben là c'est plus clair.

    Bon après chacun voit midi à sa porte

  6. #6
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Je suis "presque" d'accord.

    On a effectivement 3 couches, à chaque couche ses erreurs
    TCP/IP (IOException)
    HTTP (200,404,500, ... StatusLine)
    APPLICATION (à définir par l'applicatif)

    Sauf que la couche HTTP est "prévue" pour fournir des informations applicatives (statuts 200,201,300,400,401,403,406,...). Et il serait bête de ne pas les utiliser pour cela.

    Par exemple, si on parle de "REST" par exemple, l'URL décrit un livre, si ce livre n'existe pas le serveur DOIT retourner 404.
    401/403 pour des problemes d'authentification.
    406 si il ne peut pas fournir le type de rendu désiré (JSON par exemple)
    etc...

    Sans oublier 400, l'appelant a fait une bourde dans sa syntaxe !

    Les codes retours HTTP doivent être pris en compte de toute manière...
    200-299 => ok ca s'est bien passé
    300-399 => ok, mais c'est pas complet
    400-499 => pas ok, c'est un probleme coté application
    500-599 => pas ok, c'est un probleme coté serveur
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    Si je souhaite juste tout simplement vérifier si un livre est présent ou pas,

    Je peux me fier uniquement sur le code retour 404.

    Concernant l'envoi de donné, est-ce que le code 200 suffit pour dire que cela a été transmis?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    Est-ce que une réponse sous la forme JSON?:

    {"status": 0 }

    Sinon :

    {"status": -1 }

    J'utiliserais une méthode POST pour la vérification. une méthode POST afin de ne pas ajouter les paramètres dans l'URL.

Discussions similaires

  1. [IIS 7.5] Erreur HTTP 500.19, code erreur 0x80070021
    Par a-ternet dans le forum IIS
    Réponses: 2
    Dernier message: 07/06/2017, 14h06
  2. [AJAX] Le bon code d'erreur HTTP
    Par fredoche dans le forum AJAX
    Réponses: 2
    Dernier message: 23/08/2013, 11h17
  3. [Tomcat][Eclipse] erreur http 404 à l'exécution de servlet
    Par mayjo dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 30/07/2004, 18h19
  4. [Htaccess] Gérer les erreurs HTTP du type 404...
    Par Marshall_Mathers dans le forum Apache
    Réponses: 4
    Dernier message: 01/07/2004, 10h29
  5. [Kylix] code erreur :-10 :(
    Par maamar dans le forum EDI
    Réponses: 2
    Dernier message: 21/09/2003, 01h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo