J'effectue actuellement un stage où l'on me demande d'utiliser des web services apogée et je rencontre un soucie pour l'un d'entre eux. J'utilise soap_client pour faire appel à mon web service mon appel ressemble donc à ceci :
$soapClient = new soapclient($wsdl, array(
"trace"=>true));
$resultat = $soapClient->__soapCall("recupererListeEtudiants",array($params));
Le soucis vient du $params. Le web service me demande de lui passer des paramètres avec la structure suivante :
Code : Tout sélectionner
<element name="listDiplomes" nillable="true" type="intf:TableauDiplomes"/>
<complexType name="TableauDiplomes">
<sequence>
<element name="item" type="tns1:EtudiantCritereListeDTO" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<complexType name="EtudiantCritereListeDTO">
<sequence>
<element name="code" nillable="true" type="xsd:string"/>
<element name="listVersion" nillable="true" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>J'ai compris la structure car via l'outil soapUI je parviens à passer ma requête en xml. Mon soucis est que je n'arrive pas à la "traduire" en php.
Voici mon tableau de paramètres actuel :
$params = array("_parametres" =>array(
"listDiplomes" =>array(
"item"=>array(
"code" => $codDip,
"listVersion" => array(
"item"=>array($codVdi)
)
)
)
J'ai tenté de parser la requête xml de soapUI directement, le tableau correspond à ceci pour moi mais le webservice me renvoie l'erreur suivante :Code :
Sélectionner tout - Visualiser dans une fenêtre à part
Code : Tout sélectionner
SoapFault exception: [soapenv:Server.userException] org.xml.sax.SAXException: Found character data inside an array element while deserializing