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

Servlets/JSP Java Discussion :

pb d'ecriture de POST contenant des caractères blanc


Sujet :

Servlets/JSP Java

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 705
    Points : 934
    Points
    934
    Par défaut pb d'ecriture de POST contenant des caractères blanc
    Bonsoir

    J'utilise une routine pour ecrire des objets sérialisé, elle fonctionne bien, sauf que lorsque je met des caractères blanc dans l'URL cela n'est plus ecrit.
    Je n'ai aucun message d'errreur et je n'arrive pas coté servlet dans la methode "service".
    Je pense que dans la chaine du POST je dois remplacer le caractère blanc par autre chose, j'ai essayé %20% et entre ' ' mais sans succes

    Merci d'avance


    */
    public static int WritePostStreamObjectSocket(Object obj,String host,int port,String servlet,String protocol){
    int rt=0;
    try{
    java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
    java.io.ObjectOutputStream oos = new java.io.ObjectOutputStream(baos);
    oos.writeObject(obj);
    oos.flush();
    oos.close();
    byte b[] = baos.toByteArray();

    java.net.Socket sock=new java.net.Socket(host,port);
    java.io.OutputStream outp=sock.getOutputStream();
    java.io.DataOutputStream dataout=new java.io.DataOutputStream(outp);
    // MON SOUCIS DOIT ETRE DANS LA chaine "servlet" contenant un nom de fichier qui à des blancs.

    dataout.writeBytes("POST "+servlet+" HTTP/1.1\r\n");
    dataout.writeBytes("Host: "+host+":"+port+"\r\n");
    dataout.writeBytes("Content-type: application/octet-stream\r\n");
    dataout.writeBytes("Content-length:"+" "+b.length+"\r\n");
    dataout.writeBytes("\r\n");
    //post data
    dataout.write(b);
    //lire la reponse
    java.io.InputStream inp=sock.getInputStream();
    java.io.DataInputStream datain=new java.io.DataInputStream(inp);
    try{
    rt=datain.readInt();
    }
    catch(Exception e1){
    e1.printStackTrace();
    }
    datain.close();
    inp.close();
    dataout.close();
    outp.close();
    sock.close();
    baos.close();
    }
    catch(Exception e){
    System.out.println("Erreur "+e.getMessage());
    e.printStackTrace();
    }
    return rt;
    }


  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 705
    Points : 934
    Points
    934
    Par défaut
    j'ai reecrit ma methode d'ectiture mais tjrs le meme probleme

    public static int WritePostStreamObjectSocket2(Object obj,String host,int port,String servlet,String protocol){
    String tmp=new String(protocol+"://"+host+":"+port+servlet);
    int rt=0;
    try {
    System.out.println("socket2");
    java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
    java.io.ObjectOutputStream oos = new java.io.ObjectOutputStream(baos);
    oos.writeObject(obj);
    oos.flush();
    oos.close();
    byte b[] = baos.toByteArray();


    System.out.println("socket2A");
    java.net.URL u=new java.net.URL(tmp);

    java.net.HttpURLConnection urlc = (java.net.HttpURLConnection) u.openConnection();
    // Set the Post (true) or Get (false) method.
    urlc.setDoOutput(true);
    urlc.setDoInput(true);
    urlc.setUseCaches(false);
    urlc.setAllowUserInteraction(false);

    urlc.setRequestProperty("Content-type", "application/octet-stream");

    java.io.ObjectOutputStream out3 = new java.io.ObjectOutputStream(urlc.getOutputStream());
    out3.writeObject(obj);
    out3.write(b, 0, b.length);
    out3.flush();
    out3.close();


  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 705
    Points : 934
    Points
    934
    Par défaut
    mon url est de la forme http://172.16.0.101:8080/infodev/ser...ss-objet12.obj

    et je ne vois meme pas le system.out qui est en premier dans la methode service

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 705
    Points : 934
    Points
    934
    Par défaut
    pb resolu en aenvoyant la valeur hexa

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

Discussions similaires

  1. Probléme avec requétes contenant des caractéres spéciaux
    Par dragonfly dans le forum Requêtes
    Réponses: 1
    Dernier message: 08/11/2007, 17h20
  2. Nettoyer une chaine contenant des caractères spéciaux?
    Par adil_vpb dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/05/2007, 15h47
  3. Réponses: 1
    Dernier message: 22/01/2007, 20h33
  4. Charger un fichier texte contenant des caractères
    Par dm_manu dans le forum MATLAB
    Réponses: 5
    Dernier message: 24/12/2006, 02h37
  5. [JDOM] Parser un xml contenant des caractères spéciaux
    Par Baptiste Wicht dans le forum Format d'échange (XML, JSON...)
    Réponses: 16
    Dernier message: 19/07/2006, 11h57

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