Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai un webservice DotNet. Je dois utiliser Soap pour le consommer.
Le soucis est que je dois passer en paramètre un flux xml ci-dessous :
<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <GetData xmlns="http://acadomia.org/"> <REQUEST_GETDATA xmlns="http://BTS_DOMIAGROUP_GETDATA_SCHEMA.Ws_GetData"> <EXT_ID xmlns="">string</EXT_ID> <TYPE_GET xmlns="">string</TYPE_GET> <SOCIETE_ID xmlns="">string</SOCIETE_ID> <PARMS VALUE="string" QUOTE="boolean" xmlns="" /> <PARMS VALUE="string" QUOTE="boolean" xmlns="" /> </REQUEST_GETDATA> </GetData> </soap12:Body> </soap12:Envelope>
J'ai vu la méthode _doRequest qui prend en paramètre un objet Zend_Soap_Client_Common, $request (qui est le flux), l'url soapAction et pour finir la version de soap)
j'ai du mal à comprendre comment l'utiliser exactement. Si quelqu'un peut m'aider.
Julien.
Hors ligne
normalement tu construis un tableau associatif que tu passe à soapcall de ton client est il se charge de faire lui-même le xml
A+JYT
Hors ligne
JE veux bien qu'il me génére un flux à partir d'un tableau mais comment pour que ce lux soit exactement comme celui ci :
<EXT_ID xmlns="">string</EXT_ID> <TYPE_GET xmlns="">string</TYPE_GET> <SOCIETE_ID xmlns="">string</SOCIETE_ID> <PARMS VALUE="string" QUOTE="boolean" xmlns="" /> <PARMS VALUE="string" QUOTE="boolean" xmlns="" />
De même pour les namespace :
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
Comment faire pour qu'il me génère exactement ce flux ?
Hors ligne
c'est ton WSDL qui doit dire à soap comment coder
toi tu fournis un tableau avec les mêmes clefs que les tag xml attendus
A+JYT
Hors ligne
Merci Seikajin pour ces réponses.
Je n'ai pas d'accès au fichier WSDL de chez moi (donc pas avant demain matin) et ce n'est pas moi qui est codé ce web service.
$clientsoap = new Zend_Soap_Client(); $clientsoap->setWsdl("http://192.168.30.14/BTS_DOMIAGROUP_GETDATA_PROXY/WebService_BTS_DOMIAGROUP_GETDATA.asmx?WSDL"); $options = array( 'soap_version' => SOAP_1_2 ); $clientsoap->setOptions($options); $response = $clientsoap->GetData(array("EXT_ID" => "", "TYPE_GET" => "EnseignantLoginByLoginMdp", "SOCIETE_ID" => "1"));
Dans ton dernier post, tu me dis donc que le code ci dessus devrait générer le code xml ci-dessous
<EXT_ID xmlns=""></EXT_ID> <TYPE_GET xmlns="">EnseignantLoginByLoginMdp</TYPE_GET> <SOCIETE_ID xmlns="">1</SOCIETE_ID>
Mais comment donner des valeurs aux attributs VALUE et QUOTE de chacun des éléments PARMS ?
Est ce de la même manière ?
Voici le WSDL (pas entier) :
<s:schema elementFormDefault="qualified" targetNamespace="http://BTS_DOMIAGROUP_GETDATA_SCHEMA.Ws_GetData"> − <s:element name="REQUEST_GETDATA"> − <s:complexType> − <s:sequence> <s:element minOccurs="1" maxOccurs="1" form="unqualified" name="EXT_ID" nillable="true" type="s:string"/> <s:element minOccurs="0" maxOccurs="1" form="unqualified" name="TYPE_GET" type="s:string"/> <s:element minOccurs="0" maxOccurs="1" form="unqualified" name="SOCIETE_ID" type="s:string"/> − <s:element minOccurs="0" maxOccurs="unbounded" form="unqualified" name="PARMS"> − <s:complexType> <s:attribute name="VALUE" type="s:string"/> <s:attribute name="QUOTE" type="s:boolean" use="required"/> </s:complexType> </s:element> </s:sequence> </s:complexType> </s:element> − <s:element name="RESPONSE_GETDATA"> − <s:complexType> − <s:sequence> − <s:element minOccurs="0" maxOccurs="1" form="unqualified" name="DATA"> − <s:complexType> − <s:sequence> <s:any/> </s:sequence> </s:complexType> </s:element> </s:sequence> </s:complexType> </s:element> </s:schema>
Merci encore.
Pour Sekaijin : As tu une société ou es tu freelance ? Nous cherchons un prestataire pour des développements spécifiques.
Dernière modification par jbunel (09-12-2009 09:55:33)
Hors ligne
Je n'ai toujours pas réussi à faire fonctionner zend_soap_client avec le service DotNet. Pour l'instant j'utilise donc une classe nusoap.php. Je continue mes recherches.
Merci,
Julien.
Hors ligne