Partage
  • Partager sur Facebook
  • Partager sur Twitter

Meilleur procédure pour l'envoie d'un XML sur un serveur

D'une application Java a une page php.

Sujet résolu
    18 mai 2012 à 11:54:03

    Bonjour à tous,

    Je me demandais quelle était la meilleur façon d'envoyer depuis mon application Java mon fichier xml.
    Je m'explique, j'ai deux choses. Je peux envoyer soit une variable document JDOM ou un fichier "monFichier.xml".
    Le but est d'envoyer ça sur une page PHP qui va afficher les valeurs de ce xml dans des cases.

    Je me demande donc quelle serai la manière/procédure la plus optimisé pour envoyer ce xml à traiter sur ma page.
    Par quelle "technologie" je devrai passer.

    Merci d'avance. :D
    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2012 à 12:04:11

      Ba ecoute si ton PHP ne fait que afficher ta page, je te conseil de transformé ton XML en HTML (via XSLT par exemple) et d'envoyé le HTML a ton PHP.

      Si ton serveur php n'est pas sur la même machine que ton java, il va falloir que tu passe par des sockets ;)
      • Partager sur Facebook
      • Partager sur Twitter
      Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...
        18 mai 2012 à 12:22:40

        Oui mon serveur n'est pas sur la même machine.

        Et je ne fait pas qu'un simple affichage, je traite mon xml dans une page.
        Mais le traitement je ne le développe pas.
        je m'occupe juste de l'envoie tant qu'il reçoit mon xml c'est bon.

        Le plus simple serait qu'il soit pour lui dans un $_POST mais je ne pense pas que ce soit possible.

        EDIT : Pas d'idées ?
        • Partager sur Facebook
        • Partager sur Twitter
          18 mai 2012 à 18:27:53

          Ok, donc tu peux envoyé tes données via la class HttpURLConnection ;)

          http://docs.oracle.com/javase/6/docs/a [...] nnection.html
          • Partager sur Facebook
          • Partager sur Twitter
          Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...
            21 mai 2012 à 17:08:12

            Super j'ai utilisé HttpURLConnection. Je suis face un petit problème.
            J'ai terminé l'envoie, je n'ai pas d'erreur.
            Mais maintenant, quand j’envoie bah, il ne se passe rien.
            Mon code se lance, mais ça n'ouvre pas de page ça ne fait rien. Je sais pas c'est bizarre.
            J'ai du mal a comprendre comment on fonctionne avec ça...

            Je montre mon code si quelqu'un sait :
            public static void main(String[] args)
            	{
            		String url = "http://localhost:82/soap/ninja.php";
            		String charset = "UTF-8";
            		String param1 = "value1";
            		String param2 = "value2";
            		// ...
            		String query;
            		try {
            			query = String.format("param1=%s&param2=%s", 
            					URLEncoder.encode(param1, charset), 
            					URLEncoder.encode(param2, charset));
            			postPhp.excutePost(url, query);
            		} catch (UnsupportedEncodingException e) {
            			// TODO Auto-generated catch block
            			e.printStackTrace();
            		}
            


            Et la classe qui gère l'envoie :

            public class postPhp {
            	 public static String excutePost(String targetURL, String urlParameters)
            	  {
            	    URL url;
            	    HttpURLConnection connection = null;  
            	    try {
            	      //Créer une connexion
            	      url = new URL(targetURL);
            	      connection = (HttpURLConnection)url.openConnection();
            	      connection.setRequestMethod("POST");
            	      connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            				
            	      connection.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length));
            	      connection.setRequestProperty("Content-Language", "en-US");  
            				
            	      connection.setUseCaches (false);
            	      connection.setDoInput(true);
            	      connection.setDoOutput(true);
            
            	      //Envoie requête
            	      DataOutputStream wr = new DataOutputStream (
            	                  connection.getOutputStream ());
            	      wr.writeBytes (urlParameters);
            	      wr.flush ();
            	      wr.close ();
            
            	      //Avoir la réponse
            	      java.io.InputStream is = connection.getInputStream();
            	      BufferedReader rd = new BufferedReader(new InputStreamReader(is));
            	      String line;
            	      StringBuffer response = new StringBuffer(); 
            	      while((line = rd.readLine()) != null) {
            	        response.append(line);
            	        response.append('\r');
            	      }
            	      rd.close();
            	      return response.toString();
            
            	    } catch (Exception e) {
            
            	      e.printStackTrace();
            	      System.out.println("ERROR !");
            	      return null;
            
            	    } finally {
            
            	      if(connection != null) {
            	        connection.disconnect(); 
            	      }
            	    }
            	  }
            
            • Partager sur Facebook
            • Partager sur Twitter
              21 mai 2012 à 18:47:37

              Tu a regardé si ton php reçois quelque chose ?
              tu as regardé si ton serveur web reçois une connexion ?
              • Partager sur Facebook
              • Partager sur Twitter
              Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...
                22 mai 2012 à 10:06:15

                Citation : hannibal.76

                Tu a regardé si ton php reçois quelque chose ?
                tu as regardé si ton serveur web reçois une connexion ?



                127.0.0.1 - - [22/May/2012:09:46:46 +0200] "POST /soap/ninja.php HTTP/1.1" 200 6
                127.0.0.1 - - [22/May/2012:09:47:39 +0200] "POST /soap/ninja.php HTTP/1.1" 200 6
                127.0.0.1 - - [22/May/2012:09:47:51 +0200] "POST /soap/ninja.php HTTP/1.1" 200 6

                Oui j'ai regardé dans mes log d'apache, j'ai encore testé plusieurs foi en ce doux matin.
                Ça a l'aire de fonctionner.

                Je ne vois pas par contre comment tu veux que je test si mon php reçoit quelque chose ?
                Dans mes logs on voit bien qu'il y a un méthode POST c'est suffisant, non ?
                • Partager sur Facebook
                • Partager sur Twitter
                  22 mai 2012 à 10:18:00

                  Alors vue tes log il y a bien une requete réussi.
                  Donc ton php fait bien les traitements que tu souhaites ?
                  Il y a quoi qui ne fonctionne pas ??? car la pour moi sa fonctionne. Tu parle d'ouvrir une page, tu veux ouvrir la page web dans un navigateur ou recuperer la sortie de ton script PHP ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...
                    22 mai 2012 à 10:35:58

                    En fait, quand mon traitement se fait, je suis face au faite ça n'ouvre pas ma page de traitement.
                    Ça envoie bien mes donnée sur une page ninja.php mais il ne l'ouvre pas. Quand je lance sur cette page j'ai mis un petit code en PHP pour récupérer en $_POST mes données et des les afficher.

                    Mais il ne se passe rien. D’où mon problème.
                    Il doit y avoir quelque chose que je n'ai pas saisie.

                    Je veux juste pouvoir le traiter comme quand tu valides sur un form methode POST.

                    Merci en tout cas du temps que tu me consacre.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 mai 2012 à 10:50:42

                      La tu fait juste une requete HTTP, tu ne demande pas a afficher la page.
                      Regarde ce que te retourne le getResponseMessage() après l'envoie du post ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...
                        22 mai 2012 à 11:23:18

                        Ok je vois, je suis débile, lis ton man qu'a moitié.

                        Une dernière question, c'est possible de récupérer mon $_POST avec de l'ajax ?
                        En tout cas ce que j'envoie actuellement.
                        J'ai une page Php il y a de l'Ajax dessus qui attend mon envoie et "bim" ça traite.
                        Une simple réponse par oui ou non me suffit :)

                        EDIT : Par exemple quand quelqu'un crée un "tchat" il écoute bien un $_POST qui s'affiche dynamiquement , non ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          22 mai 2012 à 11:48:46

                          euh, pas tout comprit.....
                          donne ton code php ;)

                          Pour les tchat il utilise souvent des sockets ;)
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...
                            22 mai 2012 à 11:55:23

                            Ce n'est pas moi qui développe en Php.
                            Je n'ai pas de code a te proposer.

                            C'est pas grave il se débrouille :p
                            Donc je dois ouvrir la page pour être sur qu'il trouve mes $_POST.
                            C'est chiant ça, on peut pas faire d'envoi silencieux.

                            Merci en tout cas. Tu as été d'une aide précieuse.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              22 mai 2012 à 12:00:29

                              Mais de rien ;)
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...

                              Meilleur procédure pour l'envoie d'un XML sur un serveur

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown