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 :

Intérêt d'un IntputStream


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 124
    Points : 35
    Points
    35
    Par défaut Intérêt d'un IntputStream
    Bonjour,

    Pour mon projet je dois effectuer des requetes http, cela fonctionne mais il y a une chose que je ne comprend pas, quelle est l'interet de mettre la reponseHttp dans une variable de type InputStream ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    try {
     
                // création de HttpClient
                HttpClient httpclient = new DefaultHttpClient();
     
                // 2. Construit la requete GET en donnant l'URL
                HttpGet httpGet = new HttpGet(url);
                // 3. Définition des en-têtes pour informer le server
                httpGet.setHeader("Accept", "application/json");
                httpGet.setHeader("Content-type", "application/json");
     
                // 4 . Exécuter la requete, obtenir la réponse
                HttpResponse httpResponse = httpclient.execute(httpGet);
     
                // 5 .Mettre la reponse dans inputStream
                inputStream = httpResponse.getEntity().getContent();
     
                // 6. convertir inputstream en string
                if(inputStream != null)
                    result = convertInputStreamToString(inputStream);
                else
                    result = "Impossible!";
     
            } catch (Exception e) {
                Log.d("InputStream", e.getLocalizedMessage());
            }
    Merci

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quel est le problème avec cela ? Tu voudrais utiliser quoi ?


    a++

  3. #3
    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
    Dans le cas de la librairie Apache, et de HttpResponse, absolument *aucun* intérêt effectivement....

    Le code suivant a exactement le même résultat (avec en prime une gestion correcte du char-encoding spécifié dans la réponse, et une gestion de la fermeture du stream en cas d'erreur, ce qui n'est pas le cas dans le code initial):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        // 4 . Exécuter la requete, obtenir la réponse
        HttpResponse httpResponse = httpclient.execute(httpGet);
     
        // 5 & 6.Mettre la réponse en string
        result = EntityUtils.toString(httpResponse.getEntity(),"UTF-8"); // on peut mettre "ISO-8859-1" pour suivre le "standard" ou même rien du tout si mes souvenir sont bons ce qui revient au même
    Et au passage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    catch (Exception e) {
        Log.d("InputStream", e.getLocalizedMessage());
    }
    est une aberration...
    1. C'est une erreur => Log.e et non Log.d
    2. Pas de remontée de l'erreur (erreur mise sous le tapis pour l'appelant).
    3. Le Tag "InputStream" est bizarre (le TAG devrait indiquer dans quelle partie du code l'erreur a eu lieu, ce n'est probablement pas "InputStream")
    4. e.getLocalizedMessage() a une chanche sur 2 de renvoyer "null" => nouveau crash (Log n'aime pas les messages vides) NullPointerException
    5. Une exception se passe en troisième paramètre dans Log afin d'avoir la stacktrace en même temps que l'exception (et le vrai message).

    en bref ce devrait être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    catch (Exception e) {
        Log.e("MaFonction","Erreur de récupération des données",e);
        throw new MaFonctionException(e);  // ou tout exception interessante pour l'appelant... ou en tous cas, un moyen de remonter l'erreur à l'appelant
    }
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par nicroman Voir le message
    Dans le cas de la librairie Apache, et de HttpResponse, absolument *aucun* intérêt effectivement....
    Le protocole HTTP n'est pas limité au texte... on est bien obligé de travailler avec un InputStream pour cela...


    a++

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 124
    Points : 35
    Points
    35
    Par défaut
    Bonjour et merci pour vos reponses

    Mais cela ne repond pas à ma question.

    Quel est l'interet d'un intputStream ?

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Ben l'InputStream permet de manipuler un flux de données sous forme d'octets...


    a++

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 124
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Ben l'InputStream permet de manipuler un flux de données sous forme d'octets...


    a++
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mais quel est l'intérêt de XML ?
    Par darkbauer dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 01/06/2004, 18h03
  2. [TDataModule] Intérêt de séparer les accès aux données?
    Par Cornell dans le forum Bases de données
    Réponses: 5
    Dernier message: 05/09/2003, 16h42
  3. Quel est l'intérêt des Services Web ??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 19
    Dernier message: 12/02/2003, 22h28
  4. [Concept] BD ou Gestion par fichier. Intérêt de la BD ?
    Par Cian dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/11/2002, 12h16
  5. [Technique] Intérêt des index
    Par ddams dans le forum Décisions SGBD
    Réponses: 10
    Dernier message: 04/11/2002, 15h11

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