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

Applets Java Discussion :

requête HTTP POST


Sujet :

Applets Java

  1. #1
    Invité(e)
    Invité(e)
    Par défaut requête HTTP POST
    Salut,
    J'ai dans la FAQ 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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    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://truc.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

    Merci
    Dernière modification par Invité(e) ; 20/05/2008 à 16h13.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    jakarta commons http client contient des librairie pour faire des requete http (GET/POST, gestion de cookies, etc)

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Oui mais le problème n'est pas là car comment formuler la requête ?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Je suis pas sur que les url en base de java supportent correctement le multipart. Il va te falloir encoder tes données suivant le standard multipart (voir le site du w3c pour plus de détails). C'est pour çà que je te dirige vers commons httpclient de jakarta, qui gère déjà tout çà dans une api relativement facile à utiliser.

  5. #5
    Membre éclairé Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Points : 781
    Points
    781
    Par défaut
    D'après la FAQ, ta classe n'est pas correcte (content-type, longueur etc ... )

    D'après ce que je crois comprendre (je n'ai jamais fait de requête directe POST en java) :

    Le passage des info en POST me semble automatique (je ne sais pas où ca se change, je suppose sur l'object URL).

    Je n'ai ni compilé ni testé le code.

    Good luck!


    [Edit] Ah oui, aussi, le multipart, ca me parait bizarre pour transférer juste un fichier [/edit]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
    public void doPost(String adresse){
       OutputStreamWriter writer = null;
       BufferedReader reader = null;
       try {
    //création de la connection
          URL url = new URL(adresse);
          File file = new File(filePath);
          url.setRequestProperty("CONTENT-TYPE", "multipart/form-data"); 
          url.setRequestProperty("CONTENT-LENGTH",new Long(file.length()).toString()); 
     
     
          URLConnection conn = url.openConnection();
          conn.setDoOutput(true);
     
          //envoi de la requête
          writer = new OutputStreamWriter(conn.getOutputStream());
     
        InputStreamReader isr = new InputStreamReader(new FileInputStream(file)));
    int character;
     
    while ((character = isr.read()) > -1) {
        writer.write(character);
    }
          writer.flush();
    isr.close();
     
     
    //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){}
       }
    }

  6. #6
    Invité(e)
    Invité(e)
    Par défaut
    Je vais regarder avec le jakarta httpclient et je vous retient au courant.
    Merci

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par Spoutnik Voir le message
    Ah oui, aussi, le multipart, ca me parait bizarre pour transférer juste un fichier
    Tu connais d'autre techniques? (mis à part tout mettre en base64 ou similaire, envoyer çà comme un champ texte, et faire l'opération inverse coté serveur)

  8. #8
    Invité(e)
    Invité(e)
    Par défaut
    Franchement je rame pas mal même avec la docs je ne trouve pas grand chose qui fonctionne ...

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par flolag Voir le message
    Franchement je rame pas mal même avec la docs je ne trouve pas grand chose qui fonctionne ...
    A bon? Ca marche pas çà?
    http://svn.apache.org/viewvc/httpcom...va?view=markup

  10. #10
    Invité(e)
    Invité(e)
    Par défaut
    Merci je n'avais pas trouver cela. Je vais regarder cela cette aprem

    Mais même en faisant des tests j'ai ce probleme que je ne comprend pas :
    http://www.developpez.net/forums/sho...d.php?t=552786

  11. #11
    Invité(e)
    Invité(e)
    Par défaut
    J'ai regarder ce que tu m'as proposé j'ai bien réussi cela me met:
    Uploading essai.jpg to http://truc.free.fr/upload.php
    Mais je voudrais savoir ce que cela fait exactement cela met le fichier en POST ?

    Si oui comment récupérer le fichier et l'écrire avec une page php par exemple (car ma page upload.php ne contient rien pour l'instant) ?
    Merci

    PS : Je travaille sur l'hébergeur free

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    fait une recherche sur fileupload dans la doc php, tu verra tout de suite comment le gérer.

  13. #13
    Invité(e)
    Invité(e)
    Par défaut
    J'avais déjà regarder mais il ne dise pas comment récupérer un fichier qui est dans le POST HTTP ! Voila ma question
    Merci

  14. #14
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    y a des fonctions spécifiques à la gestion des fileupload en php. Jette y un oeil. Je peuyx pas t'aider plus que çà, çà fais 4ans que j'ai plus fait de php

  15. #15
    Invité(e)
    Invité(e)
    Par défaut
    Si tu peux trouve les moi car je trouve vraiment pas grand choses ......
    Dernière modification par Invité(e) ; 30/05/2008 à 16h18.

  16. #16
    Membre éclairé Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Points : 781
    Points
    781

  17. #17
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par flolag Voir le message
    Si tu peux trouve les moi car je trouve vraiment pas grand choses ...
    non

  18. #18
    Membre éclairé Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Points : 781
    Points
    781
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Tu connais d'autre techniques? (mis à part tout mettre en base64 ou similaire, envoyer çà comme un champ texte, et faire l'opération inverse coté serveur)
    Non, non, je ne sais pas! J'ai mal formulé, juste que le type mime me parraissait étrange, c'est tout.
    (Pour précision, j'ai répondu suite à un MP, c'est pas mon domaine de spé loin de là)

    Et j'avais pas vu que tu avais déjà posté le lien que j'ai mis.

  19. #19
    Invité(e)
    Invité(e)

Discussions similaires

  1. Requête HTTP - POST avec socket
    Par kalylive dans le forum Réseau
    Réponses: 3
    Dernier message: 28/04/2008, 14h10
  2. [Réseau] envoyer une requête http POST
    Par rich25200 dans le forum Langage
    Réponses: 3
    Dernier message: 31/01/2008, 23h15
  3. Requête HTTP POST sous .Net
    Par Médinoc dans le forum Framework .NET
    Réponses: 2
    Dernier message: 30/10/2007, 17h30
  4. [LINUX] Simuler une requête HTTP POST ou GET
    Par Anified dans le forum Linux
    Réponses: 1
    Dernier message: 05/02/2007, 16h11
  5. Comment effectuer une requête http post ?
    Par Turtle_fr dans le forum 4D
    Réponses: 10
    Dernier message: 07/09/2006, 01h25

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