Skip to content

$soap.call

Description

Invoque un service SOAP.

Syntaxe

$soap.call( address , service , message [ , options ] )

Paramètres

address string
Adresse (URL) du service à invoquer
service string
Nom du service à invoquer
message string
Message SOAP à envoyer
options map

Map d'options. Les options reconnues sont:

method

Méthode d'appel SOAP. Ewt implémente différentes méthodes pour effectuer un appel SOAP. Dans la version actuelle, les méthodes suivantes sont implémentées:

  • javax : méthode standard utilisant l'API SOAP de java (cette méthode est utilisée par défaut si aucune méthode n'est spécifiée)
  • jaxws : méthode basée sur l'API JAX-WS
namespace string / map
Namespace(s) attendu(s) par le service. La valeur peut être un string unique ou un map dont la clé est un préfixe de namespace et la valeur est le namespace associé.
soapaction string
Valeur de l'entête HTTP SOAPAction
username string
Nom d'utilisateur
password string
Mot de passe associé au nom d'utilisateur
binding

Type de binding. La valeur peut être indiquée au moyen d'un keyword ou d'un nom de binding explicite. Les keyword reconnus sont:

  • soap11: Binding SOAP 1.1 correspondant au namespace http://schemas.xmlsoap.org/wsdl/soap/http
  • soap12: Binding SOAP 1.2 correspondant au namespace http://www.w3.org/2003/05/soap/bindings/HTTP/
  • soap11-mtom (uniquement avec méthode jaxws): Binding 1.1 MTOM correspondant au namespace http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true
  • soap12-mtom (uniquement avec méthode jaxws): Binding 1.2 MTOM correspondant au namespace http://www.w3.org/2003/05/soap/bindings/HTTP/?mtom=true

Toute autre valeur non vide est utilisée comme telle en tant que binding. Si non défini, le binding SOAP 1.1 est utilisé.

soapheader

Header de l'enveloppe Soap. Le contenu de l'élément décrit par le paramètre est repris comme valeur de Header. La balise racine est ignorée, seul le contenu de cette dernière est repris.

Ainsi pour la valeur <sample><foo>foo</foo><bar>bar</bar></sample>, le header suivant sera construit:

<soap:Header>
    <foo>foo</foo>
    <bar>bar</bar>
</soap:Header>

L'élément racine de la valeur de header n'est pas repris dans le header final. Il est uniquement nécessaire pour permettre de spécifier plusieurs éléments de header.

httpheaders

Map de clé/valeur(s) décrivant les headers à passer à la requête SOAP. La clé doit correspondre au nom de header et la/les valeurs au(x) valeur(s) associée(s).

Si l'option soapaction est définie, elle prime sur la valeur du header SOAPAction qui serait spécifiée par la présente option.

result

Type de résultat attendu en réponse. Les valeurs possibles sont:

  • payload (valeur par défaut): la méthode retourne en réponse le payload de la réponse du service
  • envelope: la méthode retourne en réponse l'intégralité de l'enveloppe reçue du service
loglevel

Niveau de log dans lequel afficher la requête et la réponse. Les valeurs possibles sont les niveaux de log standards (trace, debug, info, warn ou error).

La valeur par défaut est vide. Dans ce cas, aucun log n'est généré.

Retour

Retourne le contenu de la réponse SOAP (sans l'enveloppe)

Exemple 1

1
2
3
4
5
6
7
8
var res = $soap.call(
            "https://www.w3schools.com/xml/tempconvert.asmx",
            "FahrenheitToCelsius",
            `<ns:FahrenheitToCelsius xmlns:ns="https://www.w3schools.com/xml/">
                 <ns:Fahrenheit>75</ns:Fahrenheit>
             </ns:FahrenheitToCelsius>`::t,
            { soapaction: "https://www.w3schools.com/xml/FahrenheitToCelsius" }
          );

L'exemple ci-dessus génère la valeur suivante dans la variable res:

<?xml version="1.0" encoding="UTF-8"?>
<FahrenheitToCelsiusResponse xmlns="https://www.w3schools.com/xml/">
  <FahrenheitToCelsiusResult>23.8888888888889</FahrenheitToCelsiusResult>
</FahrenheitToCelsiusResponse>

Exemple 2

1
2
3
4
5
6
7
8
9
var res = $soap.call(
            "http://www.soapclient.com/xml/soapresponder.wsdl",
            "FahrenheitToCelsius",
            `<soap:Method1 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
                <bstrParam1 xsi:type="xsd:string">Hello</bstrParam1>
                <bstrParam2 xsi:type="xsd:string">World</bstrParam2>
             </soap:Method1>`::t,
            { soapaction: "https://www.w3schools.com/xml/FahrenheitToCelsius" }
          );

L'exemple ci-dessus génère la valeur suivante dans la variable res:

<?xml version="1.0" encoding="UTF-8"?>
<FahrenheitToCelsiusResponse xmlns="https://www.w3schools.com/xml/">
  <FahrenheitToCelsiusResult>23.8888888888889</FahrenheitToCelsiusResult>
</FahrenheitToCelsiusResponse>