Faire communiquer une applet java avec du php

Faire communiquer une applet java avec du php - Java - Programmation

Marsh Posté le 15-07-2004 à 15:11:33    

Bonjour à tous,
et merci de me lire déjà !
 
 
Voilà, j'ai une applet java qui doit envoyer des donnees a du code php, pour que le code php les ecrive lui coté serveur. seuleument je n'arrive pas a etablir la communication entre les 2, je ne sais pas si c'est cote java ou cote php que je merdois.
 
est-ce que l'un d'entre vous aurait deja fait un tel truc ?
 
 
d'avance merci pour l'aide !!
 
Alex

Reply

Marsh Posté le 15-07-2004 à 15:11:33   

Reply

Marsh Posté le 15-07-2004 à 17:04:39    

Alx06 a écrit :

Bonjour à tous,
et merci de me lire déjà !
 
 
Voilà, j'ai une applet java qui doit envoyer des donnees a du code php, pour que le code php les ecrive lui coté serveur. seuleument je n'arrive pas a etablir la communication entre les 2, je ne sais pas si c'est cote java ou cote php que je merdois.
 
est-ce que l'un d'entre vous aurait deja fait un tel truc ?
 
 
d'avance merci pour l'aide !!
 
Alex


 
Ton applet communique par POST ou GET suivant le besoin avec tes pages en PHP qui peuvent par exemple renvoyer du txt ou XML (si t'es motiv') comme résultat a ton applet. Si tu as un simple formulaire, ca passe en parametres de ton POST mais si tu as de nombreux échanges de données ou si tu as besoin de formater des données, regardes du coté de SOAP... google (http://www.google.fr/search?hl=fr&ie=UTF-8&q=php+soap&meta=)
 
En gros sur ton applet, tu appelles une page sur ton serveur http://php-server/lucius.php en lui passant le contenu de ton formulaire (voir java.net.URLConnection).
 
Coté PHP, rien de special a faire, si ce n'est de renvoyer une reponse comprehensible en plain text ou XML afin de pouvoir recuperer le contenu dans ton applet...


Message édité par senternal le 15-07-2004 à 17:05:53
Reply

Marsh Posté le 15-07-2004 à 20:01:42    

cool senternal, merci de m'aider.
mais je n'y arrive toujours pas !!!
 
 
voici le code que j'ai dans mon applet.
je me limite a vouloir passer le parametre msg au fichier essai1.php.
 
 

Code :
  1. try {
  2.    URL url;
  3.     URLConnection con;
  4.     OutputStream oStream;
  5.     String parametersAsString;
  6.     byte[] parameterAsBytes;
  7.     String aLine; // only if reading response  
  8.     parametersAsString = "msg=hello";
  9.     parameterAsBytes = parametersAsString.getBytes();
  10.     // send parameters to server  
  11.     url = this.getCodeBase();
  12.     System.err.println("url:"+url);
  13.     url = new URL(url + "essai1.php" );
  14.     System.err.println("url:"+url);
  15.     con = url.openConnection();
  16.     con.setDoOutput(true);
  17. //    setDoInput(true); // only if reading response  
  18.     con.setDoInput(false);
  19.     con.setRequestProperty("Content=length", String.valueOf(parameterAsBytes.length));
  20.     oStream = con.getOutputStream();
  21.     oStream.write(parameterAsBytes);
  22.     oStream.flush();
  23.     oStream.close();
  24.    
  25.  }
  26.  catch (Exception e)
  27.  {
  28.   e.printStackTrace();
  29.  }


 
 
ensuite, mon fichier php fait tout connement :
(ce ficheir, appelé directement depuis le browser, marche tres bien !!!)
 
 

Code :
  1. <?php
  2. $msg1= $http_post_vars[msg];
  3. $msg2= $http_get_vars[msg];
  4. $msg3= $msg;
  5. echo $msg1;
  6. echo "<br>";
  7. echo $msg2;
  8. echo "<br>";
  9. echo $msg3;
  10. echo "<br>";
  11. $fp = @fopen("a.txt", "w" ) or die("Couldn't open $file for writing!" );
  12. $numBytes = @fwrite($fp, $msg3);
  13. @fclose($fp);
  14. echo "Wrote $numBytes bytes to $file successfully!";
  15. ?>


 
 
et les 3 variables $msg1 $msg2 $msg3 ont l'air vide
puisque qd j'essaye de les ecrire, y'a rien dans mon fichier
 
 
mais en fait, je viens de le voir là, meme quand j'essaye, cote php, un $numBytes = @fwrite($fp, "toto" ); rien n'est ecrit dans mon fichier !!!
 
donc c'est comme si dans mon applet  je n'ouvrais pas le flux, ou que mon appel à essai1.php foirait.
 
et il n'y a aucun message dans ma console java...
 
 
qui saura ?
 
 

Reply

Marsh Posté le 15-07-2004 à 20:25:12    

alors, petite news si je mets ceci
 

Code :
  1. String datipost = URLEncoder.encode("key", "UTF-8" ) + "=" + URLEncoder.encode("value", "UTF-8" );
  2.             con.setDoOutput(true);
  3.             con.setDoInput(true);
  4.             OutputStreamWriter wr = new OutputStreamWriter(con.getOutputStream());
  5.             //wr.write(datipost);
  6.             datipost = URLEncoder.encode("msg", "UTF-8" ) + "=" + URLEncoder.encode("zutflute", "UTF-8" );
  7.             wr.write(datipost);
  8.             wr.flush();


 
le fichier php ecrit bien dans le fichier "a.txt"
un p'tit toto
 
mais impossible de vroi autre chose !
(mon zutflute par ex...)

Reply

Marsh Posté le 15-07-2004 à 20:28:47    

alleluia, j'ai trouve !
c ok maintenant, merci
 
j'avais change (entre mes 2 messages) le php et m'en rappelais plus, c coooooooooooooooool

Reply

Marsh Posté le 05-07-2012 à 06:09:32    

Salut Alx06,
 
Je suis en train de tester ton exemple avec le script PHP qui écrit dans un fichier texte. Mais ça ne semble pas marcher correctement. J'ai fait pas mal de recherche et ne trouve rien de très probant pour trouver mon erreur.  
 
La connexion à l'air de se passer correctement: je ne me prend pas de message d'erreur.
Le fichier PHP à l'air de fonctionner: quand je le lance depuis mon browser, j'ai bien le fichier texte qui se créée avec la variable qui s'écrit à l'intérieur.
 
J'ai l'impression que je n'arrive pas à lancer le script PHP depuis le programme Java. Peux-tu indiquer la solution que tu as utilisée?
 
Voici mon code Java (dans l'applet):

Code :
  1. public void post_methode2()
  2. {
  3.  URLConnection connection = null;
  4.  try
  5.  {
  6.   URL url = new URL("http://tests_vh/Java/essai1.php" );
  7.   connection = url.openConnection();
  8.   //connection.setRequestMethod("POST" );
  9.   connection.setDoInput(true);
  10.   connection.setDoOutput(true);
  11.   String datipost = URLEncoder.encode("msg", "UTF-8" ) + "=" + URLEncoder.encode("zutflute", "UTF-8" );
  12.   DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
  13.   wr.writeBytes(datipost);
  14.   wr.flush();
  15.   wr.close();
  16.   m_answer.setText("tout roule" );
  17.  }
  18.  catch (Exception e)
  19.  {
  20.   m_answer.setText("problème" );
  21.   e.printStackTrace();
  22.  }
  23. }


 
 
Voici mon code PHP:

Code :
  1. <?php
  2. //$msg1= $_POST[msg];
  3.     $msg2= $_GET[msg];
  4.    
  5. echo "reçu 5 sur 5";
  6. $fp = @fopen("a.txt", "w" ) or die("Couldn't open $file for writing!" );
  7. //$numBytes = @fwrite($fp, $msg1);
  8. $numBytes = @fwrite($fp, $msg2);
  9. @fclose($fp);
  10. ?>


 
Comme tu le vois, ça colle assez à ce que tu as posté. Je ne sais pas si tu te souviens de la solution mais si tu peux me filer un coup de main, je te serai éternellement reconnaissant  :jap:  
 
Merci

Reply

Marsh Posté le 05-07-2012 à 06:37:48    

Alx06 a écrit :

alleluia, j'ai trouve !
c ok maintenant, merci
 
j'avais change (entre mes 2 messages) le php et m'en rappelais plus, c coooooooooooooooool


 
Salut Alx06,
 
Je suis en train de tester ton exemple avec le script PHP qui écrit dans un fichier texte. Mais ça ne semble pas marcher correctement. J'ai fait pas mal de recherche et ne trouve rien de très probant pour trouver mon erreur.  
 
La connexion à l'air de se passer correctement: je ne me prend pas de message d'erreur.
Le fichier PHP à l'air de fonctionner: quand je le lance depuis mon browser, j'ai bien le fichier texte qui se créée avec la variable qui s'écrit à l'intérieur.
 
J'ai l'impression que je n'arrive pas à lancer le script PHP depuis le programme Java. Peux-tu indiquer la solution que tu as utilisée?
 
Voici mon code Java (dans l'applet):

Code :
  1. public void post_methode2()
  2. {
  3.  URLConnection connection = null;
  4.  try
  5.  {
  6.   URL url = new URL("http://tests_vh/Java/essai1.php" );
  7.   connection = url.openConnection();
  8.   //connection.setRequestMethod("POST" );
  9.   connection.setDoInput(true);
  10.   connection.setDoOutput(true);
  11.   String datipost = URLEncoder.encode("msg", "UTF-8" ) + "=" + URLEncoder.encode("zutflute", "UTF-8" );
  12.   DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
  13.   wr.writeBytes(datipost);
  14.   wr.flush();
  15.   wr.close();
  16.   m_answer.setText("tout roule" );
  17.  }
  18.  catch (Exception e)
  19.  {
  20.   m_answer.setText("problème" );
  21.   e.printStackTrace();
  22.  }
  23. }


 
 
Voici mon code PHP:

Code :
  1. <?php
  2. //$msg1= $_POST[msg];
  3.     $msg2= $_GET[msg];
  4.    
  5. echo "reçu 5 sur 5";
  6. $fp = @fopen("a.txt", "w" ) or die("Couldn't open $file for writing!" );
  7. //$numBytes = @fwrite($fp, $msg1);
  8. $numBytes = @fwrite($fp, $msg2);
  9. @fclose($fp);
  10. ?>


 
Comme tu le vois, ça colle assez à ce que tu as posté. Je ne sais pas si tu te souviens de la solution mais si tu peux me filer un coup de main, je te serai éternellement reconnaissant  :jap:  
 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed