javascript - 如何在 javascript 中发送 SOAP 请求,就像在 SoapUI 中一样

标签 javascript html node.js xml soap

我目前正在做一个 NodeJS 项目,我需要在其中使用一些 soap/xml/wsdl。问题是无法弄清楚这些是如何工作的,所以请原谅我的无知。这是我需要的:

我有这个 WSDL 站点,我需要从中获得一些答案。我已经想出如何在 SoapUI 中执行此操作,但我不知道如何在 Javascript 中执行此操作。我在 soapUI 中发送的请求如下所示:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:uni="https://uni-login.dk">
   <soap:Header/>
   <soap:Body>
      <uni:hentDataAftaler>
         <uni:wsBrugerid>?</uni:wsBrugerid>
         <uni:wsPassword>?</uni:wsPassword>
      </uni:hentDataAftaler>
   </soap:Body>
</soap:Envelope>

我还有 wsdl 链接: https://wsiautor.uni-login.dk/wsiautor-v4/ws?WSDL

我也曾尝试在 nodeJS 中使用一些 npm-packages(SOAP、Strong-SOAP 和 Easy-SOAP),但我也不能使这些工作。

我希望你能给我一些建议,如果你需要更多信息来回答我的问题,请告诉我:)

最佳答案

可以使用easy-soap-request,还有这篇文章https://medium.com/@caleblemoine/how-to-perform-soap-requests-with-node-js-4a9627070eb6可能有帮助。它只是 axios 的薄包装。

我的问题代码:

const soapRequest = require('easy-soap-request');
const url = 'https://wsiautor.uni-login.dk/wsiautor-v4/ws';
const headers = {
    'Content-Type': 'application/soap+xml;charset=UTF-8',
    'soapAction': 'https://wsiautor.uni-login.dk/hentDataAftaler',
};
// example data
const xml = `
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:uni="https://uni-login.dk">
   <soap:Header/>
   <soap:Body>
      <uni:hentDataAftaler>
         <uni:wsBrugerid>?</uni:wsBrugerid>
         <uni:wsPassword>?</uni:wsPassword>
      </uni:hentDataAftaler>
   </soap:Body>
</soap:Envelope>
`;


// usage of module
soapRequest(url, headers, xml).then(({response: {body, statusCode}}) => {
    console.log(body);
    console.log(statusCode);
}).catch((errorBody) => {
    console.error(errorBody);
});

关于javascript - 如何在 javascript 中发送 SOAP 请求,就像在 SoapUI 中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55539930/

相关文章:

javascript - 如何使用 pdo 将录制的音频文件上传到网站文件夹

javascript - 如何制作像 Google chrome find (Ctrl + F) 这样的过滤器组件来检测文本并更改其背景颜色

javascript - 正则表达式排除美元符号和数字中的点

jquery - 如何使用 Angular.js 和 JQuery UI "link"数组和 DOM?

html - 导航栏打开时内容不正确

node.js - Node 脚本 - 从一台服务器故障转移到另一台服务器

javascript - 三个 : PlaneGeometry load texture to specific faces

javascript - 从数组中检索数据,从 AngularJs 中的特定第 n 项开始

html - 从包装中排除第一个 flex 元素

javascript - 正确的方式?在 NodeJS 和 HTML 中包含 JS