Ce billet est un complément de celui consacré aux WebServices en PHP : il ne contient que la transcription des exemples de clients en Lua.
A l'heure où j'écris ces lignes, Lua ne gère pas encore côté client le WSDL ... donc on s'en passera.
luarocks install luasoap
Les fichiers nécessaires seront installés dans /usr/local ... l'utilisateur doit donc avoir les écritures ou l'installation doit se faire en temps que root.
local client = require "soap.client"
require "tostring" -- see "universal tostring" from http://lua-users.org/wiki/TableSerialization
local ns, meth, ent = client.call {
url = "http://127.0.0.1/~laurent/hello.php",
soapaction = "blabla",
method = "HelloWorld",
entries = {
}
}
print("namespace = ", ns, "element name = ", meth)
print( tostring( ent ))
La partie importante est évidemment l'appel de la fonction client.call avec comme argument un tableau qui contient :
Et cela donne
$ lua TstHello.lua
namespace = http://schemas.xmlsoap.org/soap/encoding/ element name = helloWorldResponse
{
"Cool, ca marche"
{
"xsi:type"
xsi:type = "xsd:string"
}
tag = "return"
}
local client = require "soap.client"
require "tostring" -- see "universal tostring" from http://lua-users.org/wiki/TableSerialization
local ns, meth, ent = client.call {
url = "http://127.0.0.1/~laurent/WSEcho.php",
soapaction = "blabla",
method = "allo",
entries = {
{
tag = "s", "Ca marche ou bien ?",
},
}
}
print("namespace = ", ns, "element name = ", meth)
print( tostring( ent ))
Et le résultat
$ lua TstEcho.lua
namespace = http://schemas.xmlsoap.org/soap/encoding/ element name = alloResponse
{
"Votre chaine etait 'Ca marche ou bien ?'"
{
"xsi:type"
xsi:type = "xsd:string"
}
tag = "return"
}
Si le message à envoyer contient des caractères spéciaux, il convient de l'encadrer de tag CDATA comme suit :
entries = {
{
tag = "s", "<![CDATA[Ca marche ou bien ?]]>",
},
}
Visitez : Nos sorties Ski et rando |
Copyright Laurent Faillie
2001-2024
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso. |
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution. |
Visites durant les 7 derniers jours au total. |
Vous pouvez
laissez un commentaire
sur cette page.