Bonjour,
Voila j'ai créer une web service avec php qui me fournit une methode getServerDate(). Ce web service est disponible localement à l'adresse http://127.0.0.1/ServiceWebPHP/webservice.php.
Ma question est :
Comment utiliser la méthode de ce service web?
J'avais vu sur un des tutos de ce site qu'il fallait mettre l'url du site ou est héberger le web service à l'envers. Mais la je suis sur le localhost, donc j'imagine que c'est pas la même chose. En tout cas j'ai essayé avec le localhost ca ne marche pas.
Voila le code php :
et le fichier wsdl
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
31
32
33
34
35
36
37
38 <?php // La classe qui va gérer les requètes SOAP class myWebService { // Méthode renvoyant une date standardisée function getServerDate() { return array('date' => date('Y-m-d\TH:i:s O')); } } // On tente d'instancier la classe soapServer // Si cela s'avère impossible, on lève une exception try { $server = new SoapServer('webservice.wsdl', array('trace' => 1, 'soap_version' => SOAP_1_1)); // On définit la classe qui va gérer les requètes SOAP $server -> setclass('myWebService'); } catch (Exception $e) { echo $e; } // La méthode POST a été utilisée pour appeller cette page. // On suppose donc qu'une requète a été envoyée, on la gère if ($_SERVER['REQUEST_METHOD'] == 'POST') { $server -> handle(); } // sinon, on affiche une liste des méthodes que peut gérer ce serveur else { echo '<strong>This SOAP server can handle following functions : </strong>'; echo '<ul>'; foreach($server -> getFunctions() as $func) { echo '<li>' , $func , '</li>'; } echo '</ul>'; } ?>
Voila merci d'avance à ceux qui pourront m'aider!
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 <?xml version="1.0"?> <definitions name="CSP" targetNamespace="urn:CSP" xmlns:tns="urn:CSP" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:typens="urn:CSP" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:CSP"> <xsd:complexType name="MyResults"> <xsd:all> <xsd:element name="date" type="xsd:string"/> </xsd:all> </xsd:complexType> </xsd:schema> </types> <message name="getServerDate"> <part name="none" type="xsd:int"/> </message> <message name="getServerDateResponse"> <part name="value" type="typens:MyResults"/> </message> <portType name="CspPorts"> <operation name="getServerDate"> <input message="getServerDate"/> <output message="getServerDateResponse"/> </operation> </portType> <binding name="MyBinding" type="typens:CspPorts"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> <operation name="getServerDate"> <soap:operation soapAction="http://localhost/WebServicePHP/webservice.wsdl"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="MyWebService"> <documentation>Mon Service web</documentation> <port name="CspPorts" binding="typens:MyBinding"> <soap:address location="http://localhost/WebServicePHP/webservice.php"/> </port> </service> </definitions>
Partager