envoi fichier xml à un service web
Posté : 06 oct. 2005, 10:25
salut à tous
je dois développer un client soap en php4 interrogeant un serviceweb.
ce client doit envoyer au service un fichier XML du type :
Je regarde donc comment fonctionne SOAP avec php4.
Il faut utiliser une librairie au choix PEAR soap ou nusoap, mon choix se fait sur nusoap (plus utilisé il parait).
je fais quelques testes, ok ça fonctionne, mais ... qd j'interroge mon servive web, je lui envois seulement un tableau de données et non un fichier xml. C'est la class clientsoap qui se charge de transformer mes données en flux xml (la communication entre le client et le serveur soap se faisant au travers d'XML)
mais en amont, les données manipulées sont brutes.
Pour envoyer mes données, dois je parser mon fichier XML et y récupérer les données dans un tableau, ou y a t il une methode pour lui envoyer le flux xml directement.
Il me semble aussi, que le flux xml envoyé par le client est de la forme :
il faudrait que je transforme la syntaxe de mon fichier xml
merci
A@++
je dois développer un client soap en php4 interrogeant un serviceweb.
ce client doit envoyer au service un fichier XML du type :
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE inquiry_1_1 SYSTEM "inquiry_1_1.dtd">
<inquiry_1_1>
<header>
<customer-number>309849</customer-number>
<reference-number>test</reference-number>
</header>
<items>
<item>
<item-number>1</item-number>
<ean>3398915771380</ean>
<order-quantity>1</order-quantity>
</item>
</items>
</inquiry_1_1>Il faut utiliser une librairie au choix PEAR soap ou nusoap, mon choix se fait sur nusoap (plus utilisé il parait).
je fais quelques testes, ok ça fonctionne, mais ... qd j'interroge mon servive web, je lui envois seulement un tableau de données et non un fichier xml. C'est la class clientsoap qui se charge de transformer mes données en flux xml (la communication entre le client et le serveur soap se faisant au travers d'XML)
mais en amont, les données manipulées sont brutes.
Pour envoyer mes données, dois je parser mon fichier XML et y récupérer les données dans un tableau, ou y a t il une methode pour lui envoyer le flux xml directement.
Il me semble aussi, que le flux xml envoyé par le client est de la forme :
Code : Tout sélectionner
<?xml version="1.0"?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/enco
ding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body><SOAP-ENV:Fault>
<faultcode>$type</faultcode><faultactor>$actor</faultactor>
<faultstring>$msg</faultstring><detail><soapVal xsi:type="xsd:string"></soapV
al></detail>
</SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
merci
A@++