Envoie données de servlet vers script php

[Résolu/Fermé]
Signaler
Messages postés
40
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
22 décembre 2015
-
Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
-
Bonjour,

Je me demande comment envoyer des données à partir d'un servlet vers un script php.
Note:je peux pas convertir les fonctionnalités de script php en Java.C'est un module développer en php.
Exemple statique:
$descQuery = array(
'query' => 'pushCommandeSHA1',
'order_ref' => 'Ref_Commande1',
'email' => 'mich.jean@hotmail.fr',
'lastname' => 'Mich',
'firstname' => 'Jean',
'order_date' => '2015-05-22 07:55:00', 
'delay' => 0, 

);

Merci d'avance.

6 réponses

Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 860
Bonjour,

Je ne connais pas PHP, alors de quel manière ce script doit il être appelé ?
C'est une URL vers un serveur PHP, avec quel format ?
De plus est-ce que le résultat doit revenir vers la servlet ou être affiché directement par la page PHP ?
Messages postés
40
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
22 décembre 2015

Bonjour,

En fait,En cliquent sur un bouton , la servlet s'exécute et return la page JSP souhaité.==> c'est bon
Mnt, je veux intégré le module développer en php en arrière-plan avec un retour code de type entier (1,2,3 ou 4).
où je le met ici comme paramètre:
response.sendRedirect("ma_page.jsp?retour="+code);
Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 860
Dans ce cas fais juste un appel au service PHP comme ceci :

URL phpService = new URL("http://phpService.php");
Scanner sc = new Scanner(phpService.openStream());
String code = sc.nextLine();
sc.close();
Messages postés
40
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
22 décembre 2015

comment je peux passer les donnes comme paramétres?
normalment comme un simple url ? c'est ca?
Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 860
Tout dépend comment est construit le service PHP, si tu dois faire un GET tu peux effectivement passer les paramètres à l'URL : http://phpService.php?a=1&b=2

Si ton service PHP fonctionne sur un POST ou autre il faudra utiliser des HttpURLConnection (un peu plus compliqué).
Messages postés
40
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
22 décembre 2015

normalement il est défini par défaut comme statique

$descQuery = array(
'query' => 'pushCommandeSHA1',
'order_ref' => 'Ref_Commande1',
'email' => 'mich.jean@hotmail.fr',
'lastname' => 'Mich',
'firstname' => 'Jean',
'order_date' => '2015-05-22 07:55:00', 
'delay' => 0, 

);

et à moi de faire le GET ou POST
Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 860
Du coup fais plutôt un GET, c'est plus simple pour être appelé :-)
Messages postés
40
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
22 décembre 2015

oups!!
Pour le Url
URL phpService = new URL("http://phpService.php");

en faite, je suis sous netbeans & tomcat (http://localhost:8084/mon_projet)
Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 860
NetBeans et Tomcat c'est pour la partie Java. Ton service PHP doit être hébergé sur un serveur PHP... Tu ne peux pas faire tourner du PHP sur un serveur Java !
Donc ta servlet sur localhost:8084 si tu veux, mais ton PHP doit être ailleurs...
Messages postés
40
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
22 décembre 2015

oups...
c'est difficile de convertir ce csript php en java ?!

$ID_WEBSITE="idWebsite";
$SECURE_KEY="secureKey";
$descQuery = array(
'query' => 'pushCommandeSHA1',
'order_ref' => 'refCommande',
'email' => 'emailClient',
'lastname' => 'nomClient',
'firstname' => 'prenomClient',
'order_date' => 'dateCommande', // Format YYYY?MM?JJ HH:MM:SS
'delay' => 'delaiAvantEmissionAvis', // 0=Immediatement / `n' jours compris entre 1 et 30 jours

'sign' => ''
);
$descQuery['sign']=SHA1($descQuery['query'].$descQuery['order_ref'].$descQuery['email'].$descQuery['lastname'].$descQ
uery['firstname'].$descQuery['order_date'].$descQuery['delay'].$SECURE_KEY);
$encryptedNotification=http_build_query(
array(
'idWebsite' => $ID_WEBSITE,
'message' => AC_encode_base64(serialize($descQuery))
)
);
$postCommande = array('http' =>
array(
'method' => 'POST',
'header' => 'Content?type: application/x?www?form?urlencoded',
'content' => $encryptedNotification
)
);
$contextCommande = stream_context_create($postCommande);
$message= file_get_contents(`http://www.avisverifies.
com/index.php?action=act_api_notification_sha1', false, $contextCommande);

Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 860
"c'est difficile de convertir ce csript php en java ?"
C'est toi qui a dit que tu ne voulais pas...
Note:je peux pas convertir les fonctionnalités de script php en Java.
Comme je n'y connais rien en PHP, je ne sais pas exactement ce que fait ce code... mais vu ce que je devine, il y aura sûrement 2 ou 3 trucs un peu pénible en Java, mais rien d'impossible.