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;
}
Partager