Bonjour à tous!
Voilà j'ai un problème avec un fichier WSDL.
j'ai mon client soap qui reçoit un formulaire passé par POST et envoi une requête au serveur SOAP
mon problème est ( je crois) dans l'entête du fichier WSDL car il me semble que le fichier WSDL n'est pas envoyé! en tout cas je ne le vois pas avec Wireshark.
La fonction qui se trouve dans le serveur SOAP renvoi une valeur numérique et j'arrive bien à la récupérer mais cette fonction ne reçoit rien en paramètres.
[CODE]
je vous montre le client:
$client = new SoapClient('http://IP/face_1/WSProducteur.wsdl', array( 'soap_version' => SOAP_1_1,'trace' => 1,'exceptions' => 0));
$orderitems=array('retailerid'=>3,'idprod'=>2,'quantite'=>1);
$O = $client -> neworder($orderitems);
ma fonction sur le serveur SOAP:
function neworder($inputdet,$inputidprod,$inputqt) {
// si j'essaye de récupérer les paramètres reçus, je n'obtient rien
//return array('result' => $inputdet.", ".$inputidprod.", ".$inputqt);
return array('result' =>1);
}
voici la requete SOAP:
Request :
<?xml version="1.0" encoding="UTF-8"?>
3
et la réponse:
Response:
<?xml version="1.0" encoding="UTF-8"?>
, ,
et pour fini l'entête du fichier WSDL:
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns0="http://IP/face_1/WSProducteur.wsdl/types/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="http://IP/face_1/WSProducteur.wsdl"
name="WSProducteur"
targetNamespace="http://IP/face_1/WSProducteur.wsdl">
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://IP/face_1/WSProducteur.wsdl/types/"
targetNamespace="http://IP/face_1/WSProducteur.wsdl/types/"
elementFormDefault="qualified">
[/CODE]
j'envoie que l'entête car je suis presque sur que c'est un erreur de configuration car j'ai déjà utilisé plusieurs fois ses fichiers mais il y a que celui là qui ne fonctionne pas et il y a que l'entête qui le différence des autres.
J'utilise PHP 5 et apache.. mmm je crois que j'ai rien oublié...
Je vous remercie énormément de votre aide!
# Juste une petite info
Posté par Quentin Delance . Évalué à 1.
Pour ce qui est du client, lorsque tu fais des modifs d'interface (WSDL) le temps du dev, il est intéressant d'utiliser ceci :
ini_set("soap.wsdl_cache_enabled", "0");
(ou modif dans php.ini)
Sinon la partie cliente a tendance a ne pas voir les modifs...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.