Bonjour à tous.

Je débute avec la création de Web Service et je suis confronté à un problème que je n'arrive pas à résoudre.

Je cherche à créer un WS avec PHP5 et SOAP Extention. J'utilise eclipse pour créer le fichier wsdl. J'ai suivi à la lettre ce tutoriel et tout fonctionne parfaitement.

Je souhaiterai maintenant pouvoir appeler ce WS par une simple requête HTTP GET en passant le paramètre dans l'URL et c'est que ça coince.

J'ai ajouté un port à mon service avec un binding HTTP GET. je me retrouve donc avec le wsdl suivant :

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
62
63
64
65
 
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.org/services/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="services" targetNamespace="http://www.example.org/services/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/">
  <wsdl:types>
    <xsd:schema targetNamespace="http://www.example.org/services/">
      <xsd:element name="NewOperation">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="in" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NewOperationResponse">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="out" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="NewOperationRequest">
    <wsdl:part name="parameters" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="NewOperationResponse">
    <wsdl:part name="parameters" type="xsd:string"/>
  </wsdl:message>
  <wsdl:portType name="services">
    <wsdl:operation name="NewOperation">
      <wsdl:input message="tns:NewOperationRequest"/>
      <wsdl:output message="tns:NewOperationResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="servicesSOAP" type="tns:services">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="NewOperation">
      <soap:operation soapAction="http://www.example.org/services/NewOperation"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="http_get" type="tns:services">
  	<http:binding verb="GET" />
  	<wsdl:operation name="NewOperation">
  		<http:operation location="/NewOperation" />
  		<wsdl:input>
  			<http:urlEncoded />
  		</wsdl:input>
  		<wsdl:output>
  			<mime:content type="text/xml" />
  		</wsdl:output>
  	</wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="services">
    <wsdl:port binding="tns:servicesSOAP" name="servicesSOAP">
      <soap:address location="http://localhost/soap_test/serveur.php"/>
    </wsdl:port>
    <wsdl:port name="serviceHTTP" binding="tns:http_get">
<http:address location="http://localhost/soap_test/serveur.php"/></wsdl:port>
  </wsdl:service>
</wsdl:definitions>
Je ne sais déjà pas si la démarche est vraiment correcte. Mais surtout si c'est ok, quelle est l'URL qui me permet d'appeler ce WS en HTTP GET (comment passe-t-on l'operation en paramètre) ?

Je vous remercie par avance de l'aide que vous pourrez m'apporter.