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 :

outputstream to string


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    Points : 71
    Points
    71
    Par défaut outputstream to string
    Bonjour
    Voici le problème que je vis, je veux serialiser un object en xml pour ensuite la string résultante par httpPost a un serveur distant. Je réussi a serialiser l'object par contre il est serialiser en outPutStream et de la je ne sasi pas comment faire pour obtenir une string.

    merci de votre aide

  2. #2
    Membre actif Avatar de chpil
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 143
    Points : 212
    Points
    212
    Par défaut
    Comme implémentation de OutputStream, tu utilises ByteArrayOutputStream qui te permet ensuite de récupérer une chaîne de caractères.
    Autre solution: au lieu de passer par une chaîne intermédiaire, tu utilises directement l'OutputStream de la connexion http pour faire le post, OutputStream que tu passes au code de sérialisation XML

  3. #3
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    InputStreamReader in= new InputStreamReader(connection.getInputStream());
      BufferedReader reader= new BufferedReader(in);
      StringBuffer sbf= new StringBuffer();
      String line= null;
      while((line=reader.readLine())!=null){
       sbf.append(line);
      }

  4. #4
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    Points : 71
    Points
    71
    Par défaut
    La réponse la plus simple va être d'utiliser le outputstream pour faire le httpPost ... merci

  5. #5
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par jahbromo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    InputStreamReader in= new InputStreamReader(connection.getInputStream());
      BufferedReader reader= new BufferedReader(in);
      StringBuffer sbf= new StringBuffer();
      String line= null;
      while((line=reader.readLine())!=null){
       sbf.append(line);
      }
    a moins que je me trompe ce code ne fait que prendre un inputstream pour le transformer en string
    mais merci pareil

  6. #6
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    Points : 71
    Points
    71
    Par défaut
    Voici le code que j'utlise pour faire l'http post je me demande maintenant comment je fais un httpost d'un outputstream

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     
      public void postData(String xmlData,String DestinationUrl) 
      {     // Create a new HttpClient and Post Header     
        HttpClient httpclient = new DefaultHttpClient();     
        HttpPost httppost = new HttpPost(DestinationUrl);      
     
          StringEntity se;
          try {
            se = new StringEntity( xmlData, HTTP.UTF_8);
            se.setContentType("text/xml");
            httppost.setEntity(se);
            try {
              httpclient.execute(httppost);
            } catch (ClientProtocolException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            }
     
          } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          } 
     
          org.apache.http.HttpResponse httpresponse = null;
          try {
            httpresponse = httpclient.execute(httppost);
          } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }
          HttpEntity resEntity = httpresponse.getEntity();
         // tvData.setText(EntityUtils.toString(resEntity));
     
        }

  7. #7
    Membre actif Avatar de chpil
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 143
    Points : 212
    Points
    212
    Par défaut
    En te proposant d'écrire directement la sérialisation XML dans le OutputStream du post Http, c'est à une connexion Http basée sur HttpUrlConnection à laquelle je pensais (autre solution possible pour effectuer des connexions http avec Android)
    En se basant sur http-client comme tu le fais, cela ne semble pas possible, le mécanisme est un peu différent; tu peux garder ce que tu as fait, peut-être juste ne pas passer par une chaîne intermédiaire si tu sérialises ton XML dans un ByteArrayOutputStream: dans ce cas, récupères le tableau de bytes (méthode toByteArray) et passe le à un ByteArrayEntity (au lieu d'un StringEntity)

  8. #8
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    Points : 71
    Points
    71
    Par défaut
    comment je fais pour passer d'un outPutStream a un byteArrayOutPutStream
    presentement la fonction que j'utilise me permet seulmeent de serialiser dans un fichier text ou dans un ouputstream
    j'utilise simple-xml-2.6.2.jar

  9. #9
    Membre actif Avatar de chpil
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 143
    Points : 212
    Points
    212
    Par défaut
    Un ByteArrayOutputStream est un OutputStream, donc si ta fonction de sérialisation XML attend un OutputStream, tu peux lui passer une instance de ByteArrayOutputStream

  10. #10
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    Points : 71
    Points
    71
    Par défaut
    Voici j'ai régler mon probleme. pour commencer la classe que j'utlise serialize seulement dans un fichier text j'ai essayer avec un fileOutputstream, ou dataaarayoutputstream et j'avais toutjour un null exeption par contre si je serialize dans un fichier *.xml cela fonctionne. Donc je je serialze dans un fichier lis le fichier et envoir le contenu par httppost.

    Il doit surement avoir une methode de faire plus simple par contre.

Discussions similaires

  1. Convertir un OutputStream en String
    Par metalcoyote dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 30/10/2007, 10h15
  2. éliminer un caractere d'un string
    Par no-vice dans le forum Langage
    Réponses: 5
    Dernier message: 09/08/2002, 14h55
  3. URGENT: retour de string
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 15/07/2002, 09h47
  4. Réponses: 2
    Dernier message: 05/06/2002, 12h29
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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