pb ecriture de bytearray lorsque que mon URL contient des blancs
4 réponses
phil89
Bonsoir
J'utilise une routine pour ecrire des objets s=E9rialis=E9, elle
fonctionne bien, sauf que lorsque je met des caract=E8res blanc dans
l'URL cela n'est plus ecrit.
Je n'ai aucun message d'errreur et je n'arrive pas cot=E9 servlet dans
la methode "service".
Je pense que dans la chaine du POST je dois remplacer le caract=E8re
blanc par autre chose, j'ai essay=E9 %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=3D0;
try{
java.io.ByteArrayOutputStream baos =3D new
java.io.ByteArrayOutputStream();
java.io.ObjectOutputStream oos =3D new
java.io.ObjectOutputStream(baos);
oos.writeObject(obj);
oos.flush();
oos.close();
byte b[] =3D baos.toByteArray();
java.net.Socket sock=3Dnew java.net.Socket(host,port);
java.io.OutputStream outp=3Dsock.getOutputStream();
java.io.DataOutputStream dataout=3Dnew java.io.DataOutputStream(outp);
// MON SOUCIS DOIT ETRE DANS LA chaine "servlet" contenant un nom de
fichier qui =E0 des blancs.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eraser Head
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.
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) ---------------------------------------------------------------
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.
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)
---------------------------------------------------------------
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.
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) ---------------------------------------------------------------
phil89
Bonjour
J'ai resoulu le pb avec la valeur hexa des caractères
Bonjour
J'ai resoulu le pb avec la valeur hexa des caractères