[Web Service] Soap utilisation des arrays
Bonsoir
je cherche à passer des arrays sur mon web service, mais je n'y arrive pas.
cote client le code donne ca :
Code:
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
|
class CRITERE{
public $champ;
public $value;
public function __construct(){
$this->champ = array('passe', 'jp');
$this->value = array('top', 'aaa');
}
$data1 = new CRITERE();
$array= array('france','sourceEssai', 'numero', $data1);
try
{
$client = new SoapClient( 'http://127.0.0.1/clientTest/fiche.wsdl', array ('trace'=>true)) ;
$InfoResponse = $client->__soapCall("InsertUpdate",$array);///,NULL,$authHeader);
foreach ($client->__getTypes() as $elem => $value){
echo '<br/> elem : '.$elem.' -- Value : '.$value;
}
echo $client->__getLastRequest();
echo '<br/>call : '.$InfoResponse;
}
catch (SoapFault $exception)
{
print($exception);
} |
Cote serveur :
Code:
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
|
class mySoapClass {
public $passed;
public $use;
public $pass;
public function headerAuthentify( $parameters){
$this->use = $parameters;
$this->pass = $NewPart;
if($parameters =="test"){
$this->passed = true;
} else {
$this->mySoapErr( );
}
}
public function mySoapErr(){
print "Erreur";
}
public function InsertUpdate($p, $tn, $s, $array){
return "Valeur ".$val." string Pays : ".$p." _ Source : ".$tn." _ TypeNumero : ".$s." _ msisdn : ".$array->champ[0];
}
}
try
{
$server = new SoapServer('http://127.0.0.1/clientTest/fiche.wsdl', array('trace' => 1, 'soap_version' => SOAP_1_2));
$server -> setclass('mySoapClass');
$server->handle();
}
catch (Exception $e) {
echo $e;
} |
le wsdl :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
<types>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" >
<xsd:complexType name="CRITERE">
<xsd:sequence>
<xsd:element name="champ" type="xsd:string[]"/>
<xsd:element name="value" type="xsd:string[]"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
<message name="InsertUpdate">
<part name="pays" type="xsd:string"/>
<part name="TypeNumero" type="xsd:string"/>
<part name="source" type="xsd:string"/>
<part name="critere" type="typens:CRITERE"/>
</message>
<message name="InsertUpdateResponse">
<part name="value" type="string"/>
</message> |
voila si vous avez des infos pour passer un array d'objet en php et comment le recuperer, je suis preneur.
Merci