Re: pb ecriture de bytearray lorsque que mon URL contient des blancs
[ Nouvelle discussion
| Répondre au groupe
|
fr.comp.lang.java ]
Sujet: Re: pb ecriture de bytearray lorsque que mon URL contient des blancs
De: eraser_h...@yahoo.com (Eraser Head)
Groupes: fr.comp.lang.java
Organisation: Service de news de lacave.net
Date: 19. May 2008, 13:56:52
References: 1
|
phil89 wrote:
> 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;
> }
>
Salut,
Normalement, une URL ne peut pas contenir d'espaces. Il faut que tu les
encodes, par exemple en les remplaçant par %20.
Regarde par exemple comment sont encodées les URLs sur Wikipedia.
A+
--
Eraser Head
---------------------------------------------------------------
[...] même si tu comprends pas ce que je dis, tu le comprends
(Jean-Claude Van Damme)
---------------------------------------------------------------

|
 cette fonctionnalité est reservée aux membres ayant une session active !
|