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

Entrée/Sortie Java Discussion :

Envoi d'un formulaire en POST sur un site distant


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 16
    Points : 11
    Points
    11
    Par défaut Envoi d'un formulaire en POST sur un site distant
    Bonjour,

    Je réalise actuellement un applet ou j'ai besoin d'envoyer une classe java sérializée à un scriptphp sur un serveur distant. Il faudrait donc que j'envoie un formulaire en POST sur le script php avec comme champ dans le formulaire ma classe sérializée.

    J'ai tenté de bricoler un peu de code mais visiblement ça ne fonctionne pas :
    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
     
     URL u ;
            URLConnection connexion;
     
            ObjectOutputStream out ;
            try { 
                u = new URL(url);
                try { 
     
     
                    connexion = u.openConnection();
     
                    connexion.setDoOutput(true);
     
                    out = new ObjectOutputStream(connexion.getOutputStream());
                    out.writeObject(this.game);
                    out.flush();
                    out.close();
     
     
                    System.out.println("test!");
     
                }
                catch (Exception e) {
                    System.out.println(e) ; 
                } 
            }
            catch (MalformedURLException e) {
                System.out.println(e) ;
            }
    Pas de problème à l'exécution mais mon script php ne semble pas se lancer. Pour tester j'ai fais en sorte que mon script php écrive un fichier qd il est exécuté mais ce n'est pas le cas. Il doit donc y avoir une erreur dans mon code, quelqu'un peut m'aider ?

  2. #2
    Membre régulier
    Profil pro
    Abcde
    Inscrit en
    Août 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Abcde
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2004
    Messages : 59
    Points : 79
    Points
    79
    Par défaut
    Je te conseille d'utiliser une librairie de + haut niveau pour ce genre de manip comme celle de client HTTP
    http://jakarta.apache.org/commons/httpclient/index.html

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Cette librairie me semble pas mal, mais ce qui me refroidit un peu c'est la taille qu'elle prend. Comme j'utilise un applet il faudra que le client télécharge le jar qui fait qd meme 274 ko ... Ca risque d'etre un peu long et de surcharger mon serveur.
    Donc j'aimerai d'abord voir s'il n'existe pas une autre solution pour envoyer un formulaire. Comment est ce que je peux encoder l'url pour spécifier que j'envoi un formulaire en POST?

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2005
    Messages : 38
    Points : 46
    Points
    46
    Par défaut
    Tu devrais faire un tcpflow (analyse des trames reseaux) pour savoir comment le post est formé lorsque tout se passe bien et ensuite le reproduire en code. Ensuite pour faire un post j'utilise HttpUrlConnection:

    Exemple:

    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
     
    URL url = null; 
    HttpURLConnection.setFollowRedirects(false);
    OutputStream rawOutStream = null;
    ObjectOutputStream out ;
    BufferedReader in = null;
     
    url = new URL (url);
    conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("POST");
    conn.setAllowUserInteraction(false); // you may not ask the user
    conn.setDoOutput(true);
    conn.setDoInput(true);
    conn.connect();
    rawOutStream = conn.getOutputStream();
    out = new ObjectOutputStream(rawOutStream);
    out.writeObject(this.game);
    out.flush();
    out.close();
    /*Affchage du resultat */
    in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null) {
     
         System.out.println(nputLine);
     
    }
    in.close();

Discussions similaires

  1. cURL et récupération des POST sur le serveur distant
    Par lorentdups dans le forum Langage
    Réponses: 15
    Dernier message: 01/07/2015, 02h23
  2. [PHP 5.4] Validation formulaire Method POST sur la même page
    Par actarus4444 dans le forum Langage
    Réponses: 2
    Dernier message: 09/12/2014, 23h13
  3. [MySQL] Formulaire de recherche sur mon site
    Par server.dbprod dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 07/07/2014, 12h34
  4. Probleme avec formulaires php sur le site distant
    Par Lionel_aw dans le forum Langage
    Réponses: 2
    Dernier message: 26/03/2010, 17h16
  5. Envoi d'un formulaire et rester sur la même page
    Par Marie.B dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/08/2009, 12h22

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