C'est bon j'ai réussi,...
Version imprimable
C'est bon j'ai réussi,...
Bien joué :ccool:
Le "ns2" correspond à un namespace.
Dans un header soap tu définis que ns2 est égal à un espace de nom, que tu peux réutiliser plus bas. Ca permet de savoir à quel espace de nom se rattache une balise.
Dans leur doc, il y a :
Ce qui est équivalent à :Code:
1
2
3
4
5
6
7
8 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.gepir.org/"> <SOAP-ENV:Header> <gepirRequestHeader xmlns="http://www.gepir.org/"> <requesterGln>string</requesterGln> <cascade>int</cascade> </gepirRequestHeader> </SOAP-ENV:Header>
Le dernier extrait XML, je l'ai eu en regardant mon $client->__getLastRequest());Les item et new viennent du fait que ce sont des paramètres de type array semble-t-il.Code:
1
2
3
4
5
6
7
8 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.gepir.org/"> <SOAP-ENV:Header> <ns1:gepirRequestHeader> <ns1:requesterGln>string</ns1:requesterGln> <ns1:cascade>int</ns1:cascade> </ns1:gepirRequestHeader> </SOAP-ENV:Header>
Dans le dernier code que tu as mis, je crois justement que tu t'es planté de namespace à un endroit.
Tu as aussi appelé le service GetPartyByGTIN avec en premier "1.0", je sais pas trop pourquoi. J'ai dégagé ce bout là.
Au final, j'ai abouti à ça et ça marche chez moi (enfin en tout cas, j'ai pas d'exceptions).
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 <?php $client = new SoapClient('http://gepir.gs1.org/v31/router.asmx?wsdl', array('trace' => 1)); try { $header = new SoapHeader( 'http://www.gepir.org/', 'gepirRequestHeader', array( 'requesterGln' => 'string', 'cascade' => 'int' ) ); $client->__setSoapHeaders($header); $response = $client->GetPartyByGTIN( array( 'requestedGtin' => "3011360004420", 'requestedLanguages' => array( 'language' => "FR" ) ) ); var_dump($response); } catch(Exception $ex) { var_dump($client->__getLastRequest()); var_dump($ex); } ?>