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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    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 expérimenté 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
    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
    Membre chevronné

    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
    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 très actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

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

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

  5. #5
    Membre très actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    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 très actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    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 expérimenté 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
    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)

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