Posez votre question Signaler

PHP SOAP complex type

fortis 23Messages postés 15 août 2007Date d'inscription 8 août 2010Dernière intervention - Dernière réponse le 8 janv. 2010 à 16:53
Bonjour,
Je voudrais écrire un client php me permettant d'accéder à un webservice en soap avec un fichier WSDL au moyen de l'extension PHP::SOAP.
J'arrive à me connecter au WSDL avec
  $client = new SoapClient(
                     'http://rsat.scmbb.ulb.ac.be/rsat/web_services/RSATWS.wsdl',
                         array(
                               'trace' => 1,
                               'soap_version' => SOAP_1_1,
                               'style' => SOAP_RPC,
                               'encoding' => SOAP_LITERAL
                               )

La preuve, je peux utiliser les fonctions :
 $arFunctions = $client->__getFunctions(); 
 $arTypes = $client->__getTypes();

Pour avoir accès au service ConvertGraphRequest qui prend le arguments suivants (un complextype)
 string informat;
 string outformat;
 string inputgraph;
 int wcol;
 int scol;
 int tcol;
 int eccol;
 int sccol;
 int tccol;
 int undirected;
 int layout;

J'utilise la commande suivante :
$parameters[0] = $in_format;
$parameters[1] = $out_format;
$parameters[2] = $graph;
$parameters[3];
$parameters[4] = $s_col;
$parameters[5] = $t_col;
$echoed = $client->convert_graph($parameters);

mais j'obtiens l'erreur suivante
Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object hasn't 'request' property in /home/rsat/rsa-tools/public_html/convert_graph.php:70
Stack trace:
#0 [internal function]: SoapClient->__call('convert_graph', Array)
#1 /home/rsat/rsa-tools/public_html/convert_graph.php(70): SoapClient->convert_graph(Array)
#2 {main}
  thrown in /home/rsat/rsa-tools/public_html/convert_graph.php on line 70

Je pense que c'est dû au fait que je n'arrive pas à passer les complextype en arguments et je n'ai aucune idée de la manière de procéder!
Toutes les aides sont bienvenues!
Merci à tous,
Sylvain
Lire la suite 

PHP SOAP complex type »

4 réponses
Réponse
+1
moins plus
Non à ce que j'ai compris ... nusoap s'utilise sur PHP4.
PHP5 a sa librarie qui gère le soap par défaut!
Ajouter un commentaire
Réponse
+0
moins plus
Salu,
Ma réponse ne devrait pas résoudre ton pbm initiale, mais du moins (je pense) ca devrait aider l'interpreteur a moins raler.
Mets ton execution dans un bloc try catch.

Sinon j'avai une question (désolé si elle est nulle mais je débute en Web Services)
Est ce que NuSoap est impérativement nécessaire pour une application de Web Service qui utilise le protocole Soap.
(Si oui quelle est la derniere version de NuSoap ?)

Merci d'avance

Jérémy
Ajouter un commentaire
Réponse
+0
moins plus
nusoap tourne très bien sur PHP5 il apporte de nombreuses choses par rapport au support de SOAP par défaut dans PHP5
Ajouter un commentaire
Réponse
-1
moins plus
:-)
Ajouter un commentaire
Ce document intitulé « PHP SOAP complex type » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?