Bonjour,

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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$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 xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
$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
SoapFault exception: [soapenv:Server.userException] org.xml.sax.SAXException: Found character data inside an array element while deserializing"
Je suis sur ce soucis depuis 2jours et je vois vraiment pas où est mon erreur .