cs_flolag
Messages postés113Date d'inscriptionmardi 9 avril 2002StatutMembreDernière intervention12 août 2016
-
20 mai 2008 à 16:14
cs_flolag
Messages postés113Date d'inscriptionmardi 9 avril 2002StatutMembreDernière intervention12 août 2016
-
23 mai 2008 à 08:27
Salut,
J'ai dans la FAQ de developpez.com trouver pour effectuer une requête HTTP POST. C'est justement à partir de cette méthode que j'essaie d'effectuer cela.
J'explique rapidement ce que je veux faire:
Je veux envoyer un fichier (ou son contenu binaire) dans une requête HTTP POST pour le récupérer ensuite et l'écrire sur un serveur via une page ASP.
Mais je n'arrive pas à faire une requête HTTP POST et je ne trouve aucune solution sur internet.
Voici ce que j'ai déjà fait à partir de la méthode :
public void doPost(URL adresse){
OutputStreamWriter writer = null;
BufferedReader reader = null;
try {
//encodage des paramètres de la requête
String donnees = URLEncoder.encode("POST", "http://florent.lagoda.free.fr/applet/uploadASP.asp HTTP/1.1\r\n");
donnees += URLEncoder.encode("Content-Length","taille\r\n");
donnees += URLEncoder.encode("Content-type", "multipart/form-data\r\n");
//création de la connection
URL url = adresse;
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
//envoi de la requête
writer = new OutputStreamWriter(conn.getOutputStream());
writer.write(donnees);
writer.flush();
//lecture de la réponse
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String ligne;
while ((ligne = reader.readLine()) != null) {
System.out.println(ligne);
}
}catch (Exception e) {
e.printStackTrace();
}finally{
try{writer.close();}catch(Exception e){}
try{reader.close();}catch(Exception e){}
}
}
Pour envoyer un fichier présent sur mon disque ou que je convertirais en binaire je voudrais donc savoir comment faire cette requête
cs_flolag
Messages postés113Date d'inscriptionmardi 9 avril 2002StatutMembreDernière intervention12 août 2016 22 mai 2008 à 10:31
C'est bon j'ai réussi mon fichier est bien dans le POST j'ai vérifier avec Wireshark mais comment le récupèrer pour l'ecrire sur le serveur avec PHP par exemple ,
Merci
jiidou
Messages postés48Date d'inscriptionvendredi 31 août 2007StatutMembreDernière intervention12 février 2009 23 mai 2008 à 00:42
Avec une servlet c'est plus facile:
// Récupération du flux
java.io.DataInputStream dis = new java.io.DataInputStream(request.getInputStream());
dis.readFully(temp);
dis.close();
// Ecriture du fichier sur le serveur
File Serveur = new File("/repertoire/fichier");
FileOutputStream fos = new FileOutputStream(Serveur);
fos.write(temp);
fos.close();