Je souhaite passer un appel à un service Web dont je n'ai que le fichier WSDL. Je vais énumérer les bits importants du fichier WSDL avec des noms sensibles au contexte remplacés par des généraux:Accéder à un service Web SOAP en utilisant PHP contenant un complexType dans le WSDL
La fonction que je veux appeler:
<wsdl:operation name="myFunction">
<wsdl:input message="ns:myFunctionRequest" wsaw:Action="urn:myFunction"/>
<wsdl:output message="ns:myFunctionResponse" wsaw:Action="urn:myFunctionResponse"/>
</wsdl:operation>
La description de la fonction:
<xs:element name="myFunction">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="param0" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="param1" nillable="true" type="somens:MyType"/>
<xs:element minOccurs="0" name="param2" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
La description de 'MyType':
<xs:complexType name="MyType">
<xs:sequence>
<xs:element minOccurs="0" name="date1" nillable="true" type="xs:dateTime"/>
<xs:element minOccurs="0" name="date2" nillable="true" type="xs:dateTime"/>
<xs:element minOccurs="0" name="string1" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="int1" nillable="true" type="xs:int"/>
<xs:element minOccurs="0" name="int2" nillable="true" type="xs:int"/>
</xs:sequence>
</xs:complexType>
Je pense à mon code PHP recherche un peu lik e ceci:
$client = new SOAPClient('my soap URL');
$result = $client->setState(array('param0'=>'bla', 'param1'=><undecided>, 'param2'=>'bla');
Mon problème est quoi mettre dans la partie indécis. Est-ce que cela devrait être un tableau qui met en correspondance les noms du type complexe avec les valeurs? Ou devrait-il être une classe que je définis moi-même avec le champ des types correspondants? Je n'ai pas un bon terrain d'essai pour l'essayer en ce moment et j'aimerais pouvoir passer à autre chose avant de l'avoir disponible.
J'ai vu beaucoup de questions liées au SOAP sans réponse, alors j'espère que j'aurai de la chance :). Si je découvre moi-même, je partagerai bien sûr mes résultats.
Merci d'avance!
Merci! C'est très concis et précis. Exactement ce dont j'avais besoin. Je ferai un autre commentaire ici pour confirmer que cela a fonctionné quand je dois pouvoir le tester. –
Je l'ai testé et ça a marché. –
Allé de l'horen & dank je voor de beleefdheid om même le melden de het inderdaad werkte de niet, dat heeft helaas niet iedereen;) – Wrikken