B4loo
Messages postés13Date d'inscriptionjeudi 27 mars 2003StatutMembreDernière intervention14 mars 2006
-
7 févr. 2006 à 10:29
B4loo
Messages postés13Date d'inscriptionjeudi 27 mars 2003StatutMembreDernière intervention14 mars 2006
-
7 févr. 2006 à 15:45
Bonjour,
étant débutant en php (quelques notions de VB) je rencontre un problème avec l'utilisation de SOAP (php5).
Mon problème est que je dois génerer une requête SOAP avec une entête de ce genre :
<soap:Header>
string
<Culture>string</Culture>
<Name>string</Name>
string
</soap:Header>
Après plusieurs tuto et quelques doc je vois qu'il existe un constructeur 'new soapHeader()' qui s'ecrit :
$head = new soapHeader ("le name space", "le nom de l entete", "le contenue de l entete")
Mon probleme est qu' avec cet appel je n'arrive pas à generer mon entête comme voulu
Ex:
$entete = '<soap:Header>
string
<Culture>string</Culture>
<Name>string</Name>
string
</soap:Header>';
$head = new soapHeader("monnamspace","entete",$entete);
cet appel donne ca :
<soap:Header>
<entete>
string
<Culture>string</Culture>
<Name>string</Name>
string
</entete>
</soap:Header>
Ou "entete" est le second paramaetre de "soapHeader()", j ai aussi essayer sous forme de tableau, d'objet ...
Rien a faire je m en sort pas ...
j ai aussi vu k'il y a la fonction "setSoapHeaders()" mais encore une fois sans résultata pour moi ...
Si quelqu'un pouvait me donner un coup de main, m'aiguiller sur une idée ce serai super cool !
merci d'avance =)
Ps : j'ai essayé et ca fonctionne avec NuSoap ("en local) mais le serveur sur lequel je dois poser le script n'est pas en local et n' pas NuSoap ....
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 7 févr. 2006 à 10:47
Hello,
heu, il faudra que tu expliques mieux quel est ton problème. L'extension Soap dont tu parles n'est pas en standard dans php, mais je suppose que tu as installé ce qu'il faut...?
Ensuite, SOAP, c'est un flux xml, c'est tout. Et générer un flux xml en php n'est pas sorcier.
Enfin, après avoir lu un peu la doc sur cette extension que je n'ai jamais utilisée, je te suggèrerais d'utiliser __soapCall () en conjonction avec ton soapHeader ().
String function_name = Le nom de la fontction a appelé : OK
En cas d'utilisation de SOAP en mode WSDl , ce qui est mon cas, seul ce paramètre est necessaire.
Mais cela ne résolu pas mon probleme de "formatage" d'entête ...
Pour rappel voila le format d'entête que j aimerai avoir :
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 7 févr. 2006 à 11:49
C'est pas ce qu'il y a de marqué sur la doc, mais si tu le dis, je te crois :-) (c'est un standard, mais pas fourni en standard au complet)
Et je sais ce qu'est SOAP, j'ai pas mal travaillé avec. Et je te garantis qu'on s'en sort très bien sans l'extension concernée. Et je ne comprends toujours pas ton problème pour construire ton header : c'est un flux xml...
B4loo
Messages postés13Date d'inscriptionjeudi 27 mars 2003StatutMembreDernière intervention14 mars 2006 7 févr. 2006 à 15:45
Ok j ai trouvé ;)
je post dans le cas ou quelqu'un ai le mm pb :
//On creer deux nouveau header
$head2 = new SoapHeader ("NameSpace", "Partner", array('Name'=>xxxx,'Password'=>xxxx),true);
$head1 = new SoapHeader ("NameSpace", "Agency", array('Code'=>xxx,'Culture'=>'xxxx'), true);
//on en fait un tableau
$head4 = array($head1,$head2);
//on creer le client
$client = new SoapClient("URL du WSDl");
//Appel de la fonction avec le tableau d' header
$response = $client->__soapCall("Fonction",array(),array(),$head4);