问题标签 [node-soap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 几次成功调用后的Nodejs Node-SOAP ETIMEDOUT
几次成功调用后,我收到 ETIMEDOUT 错误...这是代码:
我已经尝试设置超时参数,但没有任何改变......
谢谢!
node.js - 如何在 node-soap 中使用派生类型
我正在使用 Node Soap https://github.com/vpulim/node-soap发送 SOAP 请求并解析答案。
现在我有一个具有派生类型的服务<searchedAddress xsi:type="PersonAddressDescription">
。
如何xsi:type="PersonAddressDescription"
在我的请求中指定?
这就是我所做的
这就是请求的样子:
node.js - 联邦快递费率请求与 node.js 使用 node-soap
我正在尝试使用node-soap向 FedEx API 发出简单的费率请求。我已经阅读了文档和 WSDL 以包含所有必需的信息,但我得到的只是一个空对象作为响应。
由于我没有收到任何错误,我不确定我做错了什么,或者我是否错过了一些步骤。
这是我的代码:
node.js - 具有私有根证书颁发机构的 node-soap wssecuritycert
背景资料。
我的公司需要证书才能访问肥皂服务。他们要求我向他们提交一份 csr,然后他们用他们的根 CA 签名。然后他们用他们的根 ca 证书发回签名证书。
Portacle 我已经在 SoapUI 中使用 Program Portacle 导入我返回的 pem 文件并导入根证书(CA 证书)然后我使用 Portacle 以 pem 格式导出带有私钥和证书的密钥对。哦,我还用密码保护密钥对。
SoapUI 在 SoapUI 中,我将导出的 pem 文件与我在 Portacle 步骤中使用的密码一起添加到 WS-Security Configurations 下的 Keystores 区域。然后,我通过添加具有以下配置的 WSS 签名条目来配置传出 WS-Security 配置。我在上面设置的密钥库密码我在上面设置的密码二进制安全令牌签名算法:rsa-sha1 签名规范化:默认摘要算法:sha1 使用单一证书:是
在我的肥皂请求中,我使用授权:基本,并为我在上面设置的 OutgoingWSS:选择我的 WSS 配置。
在节点肥皂中。我不确定如何设置它。我尝试使用从 Portacle 导出的 .pem 文件作为私钥和公钥,并输入我的密码。node-soap 接受了这个,但我回来了,错误:authorizationError: 'SELF_SIGNED_CERT_IN_CHAIN' 我尝试将 pem 文件分解为私钥和证书,我尝试使用 syswide-cas 将 root-ca 证书加载到节点 I '还尝试使用 ssl-root-cas 将 root-ca 加载到节点中,作为最后一次尝试,我尝试添加 process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 但每次仍然得到相同的错误。不知道如何进行
node.js - 将“请求”附加到 wsdl 方法的节点肥皂
所以我正在尝试执行以下操作
但我不断从 Web 服务收到错误:无法从请求中识别任何 WSDL 操作。
我的最后一个请求如下所示:
我认为问题在于没有名为 getDeptUserRequest 的方法,但我试图调用 getDeptUser 不确定如何防止将单词 Request 附加到方法名称上。
WSDL
javascript - 在 node.js (node-soap) 中向 SOAP 消息添加属性
花了最后一天敲打我的头,并希望有任何帮助!
我正在构建一个使用第 3 方 SOAP Web 服务的应用程序。这是基于 node.js 并使用 node-soap。不幸的是,WSDL 文件有点损坏,我需要解决它。
这是我正在使用的代码:
这是我得到的错误。大多数其他方法都可以正常工作:
org.xml.sax.SAXException:反序列化参数\'connectionID\':找不到类型{ http://www.w3.org/2001/XMLSchema }anyType '的反序列化器
这是该方法生成的消息:
我发现 WSDL 文件没有为某些方法(例如这个)的 connectionID 参数定义适当的类型属性。它应该是xsd:string,这就是我所说的有效的方法。
在玩了一些 SOAP UI 之后,我发现向 connectionID 部分添加了一个类型属性(xsi:type=xsd:string),并添加了一个模式(xmlns:xsd="http://www.w3.org/2001/XMLSchema ") 修复它。这是我需要生成的 XML:
但是我一生都无法弄清楚如何通过节点肥皂来做到这一点。我尝试使用属性键添加类型,但是它似乎仅在我在参数中有父节点和子节点时才有效。
所以,如果我把这个传下来:
我得到以下信息:
但我只需要一个级别,像这样:
所以我明白了:
但这似乎并没有发生。事实上,当我将它保存到单个节点时,它根本没有添加类型属性。我还需要找出一种在调用中添加额外模式的方法。我通过在soap-node核心代码中手动添加它来解决它,但这根本不干净(不过我可以忍受它)。
有任何想法吗?我对 SOAP 还很陌生,目前我的运气并不好。
谢谢!
node.js - node-soap -- 如何在soap监听器处理之前捕获soap请求
我使用node-soap模块在 nodejs 中创建了一个肥皂服务器。但是我收到一个错误,表明传入的soap xml(如下所列)中存在一些问题。
<soap log: { Fault: < { faultcode: 500, < faultstring: 'Invalid XML', < detail: 'Error: Non-whitespace before first tag.\nLine: 1\nColumn: 1\nChar: -', < statusCode : 不明确的 } }
当我在谷歌中搜索时,它表明这是windows操作系统插入unicode缓冲区的BOM(字节顺序标记)的问题。大多数解决方案建议在调用 xml 解析器之前替换/删除此 BOM。
现在,当我使用 node-soap 模块时,我无法弄清楚在哪里应用此修复程序,下面是我的服务器代码。
- 在上面的soap服务器代码中,在soap服务器执行解析之前,是否有一个事件/回调钩子可以用来修改soap请求缓冲区?
- 如果是,我应该在哪里以及如何做?