[Angular 2] Consommer un web service
Bonsoir,
Je débute dans la programmation sous Angular 2 à l'aide de Ionic, je dois faire appel à un web service qui se trouve en local sur ma machine, je voulais savoir si en TypeScript, il est possible de consommer un web service définit à l'aide de sa wsdl, et si oui, comment.
J'avais voulu faire le test à l'aide de l'exemple présent ici mais vu que ce n'est pas du json, je ne trouve pas de piste.
Dans mon cas, le lien vers la wsdl se trouve à l'adresse suivante :
http://win-9u040a2kpbv:83/adelerh/se...Authentication
Je dois faire appel à la fonction LocalServiceLoginToken, elle a un unique paramètre de type chaine, le nom de ce paramètre est token, en sortie, j'obtiens une chaine, le nom du paramètre de sortie est sessionId.
Merci
EDIT : J'ai mis le code suivant :
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 34 35 36 37 38 39 40 41 42 43 44 45 46
| function soapRequest(){
let jeton='contenu de ma clé token';
let return_value= '<?xml version="1.0" encoding="UTF-8"?>'+
'<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'+
'<SOAP-ENV:Header/>'+
'<SOAP-ENV:Body>'+
'<ns1:LocalServiceLoginToken xmlns:ns1="http://www.sage.com/fr/line1000/Sage1000Authentication">'+
'<ns1:token>'+jeton+'</ns1:token>'+
'</ns1:LocalServiceLoginToken>'+
'</SOAP-ENV:Body>'+
'</SOAP-ENV:Envelope>';
return return_value;
}
function readBody(xhr) {
let data;
if (!xhr.responseType || xhr.responseType === "text") {
data = xhr.responseText;
} else if (xhr.responseType === "document") {
data = xhr.responseXML;
} else {
//data = xhr.response;
data = xhr.responseText;
}
return data;
}
function Autentication_get_sessionId() {
//ne sachant pas laquelle des 2 adresses est la bonne, je les met dans 2 variables différents et j'échange les numéros dans mes tests
let url_autentication2='http://win-9u040a2kpbv:83/adelerh/server/soap.l1000?wsdl=Sage1000Authentication';
let url_autentication1='http://win-9u040a2kpbv:83/adelerh/server/soap.l1000';
let xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', url_autentication1, true);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
alert(readBody(xmlhttp));
}
}
// Send the POST request
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
xmlhttp.send(soapRequest());
} |
Puis, quand je fais appel à Autentication_get_sessionId, j'ai un message vide qui s'affiche.