Bonjour tout le monde, je suis un jeune développeur cherchant à appeler divers webservices en PHP seulement voilà, je n'avais encore jamais entendu parlé du protocole soap jusqu'à la semaine dernière, d'où mon appel à l'aide.
Je m'évertue à appeler ces WS et m'entraîne depuis deux jours avec le plus simple d'entre eux. Malheureusement toutes mes tentatives jusqu'à maintenant sont vaines.
Description du webservice en question :
WS_Ping permet de tester l'appel à un Web Service sur le serveur.
Il requiert un paramètre texte en entrée, elle vous retournera "Bien reçu" si vous lui avez envoyé la chaîne "Ping", sinon, elle vous dira qu'il faut lui envoyer "Ping" ce qui est aussi un signe de bonne santé du Web Service.
Voici le WSDL mit à ma disposition, dont j'expose tout ce qui caractérise le WS_Ping :
Code xml : 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 <message name="WS_PingRequest"> <part name="Test" type="xsd:string"/> </message> <message name="WS_PingResponse"> <part name="MaReponse" type="xsd:string"/> </message> <operation name="WS_Ping"> <input message="tns:WS_PingRequest"/> <output message="tns:WS_PingResponse"/> </operation> <operation name="WS_Ping"> <documentation>no documentation is available</documentation> <soap:operation soapAction="Orkis_WebService#WS_Ping"/> <input> <soap:body use="encoded" namespace="http://www.orkis.com/namespace/default" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output> <soap:body use="encoded" namespace="http://www.orkis.com/namespace/default" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> <message name="WS_PingRequest"> <part name="Test" type="xsd:string"/> </message>
Et voici mon code :
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 <?php include 'soap.php'; $wsdl = 'http://www.ajaris-synergie.com:8082/4DWSDL/'; $client = new SoapClient ($wsdl); //je créé un objet $client de la classe SoapClient qui prend en argument mon wsdl $entree = array('Test' => 'Ping'); $sortie = array('MaReponse'); $ping = $client->__soapCall('WS_Ping', $entree); //j'appelle le webservice WS_Ping censé me retourner "Bien reçu" $pingResult = $client->__soapCall('WS_Ping', $sortie); echo 'toto'; //Simple test qui affiche bien toto OK print $ping ; print $pingResult; //ici aucun résultat ?>
J'ai pu consulter quelques ressources depuis dont "PHP: SOAP - Manual" qui est très complète, et il me semble que mon code est correct seulement je n'ai aucun retour.
J'ai l'impression que mon webservice n'est pas appelé du tout; pour info, j'utilise NetBeans IDE 7.2.1 et j'interroge un serveur 4D.
Quelqu'un serait-il en mesure de m'éclairer s'il vous plaît ?
Partager