Node.js 使用节点soap使用WSDL时出现问题
TL见下文;博士 无法使用节点soap使用WSDL。我尝试过其他WSDL(在线找到的示例),它们工作得很好——但是,对于这个特定的WSDL,我遇到了无数的问题。我按照承诺使用soap,它使用节点soap模块。这应该是无关紧要的Node.js 使用节点soap使用WSDL时出现问题,node.js,soap,wsdl,node-soap,Node.js,Soap,Wsdl,Node Soap,TL见下文;博士 无法使用节点soap使用WSDL。我尝试过其他WSDL(在线找到的示例),它们工作得很好——但是,对于这个特定的WSDL,我遇到了无数的问题。我按照承诺使用soap,它使用节点soap模块。这应该是无关紧要的 var soap = require('soap-as-promised'); var url = 'https://test.ipg-online.com/ipgapi/services/order.wsdl'; var apiCall = exports.apiCa
var soap = require('soap-as-promised');
var url = 'https://test.ipg-online.com/ipgapi/services/order.wsdl';
var apiCall = exports.apiCall = function () {
console.error("test");
soap.createClient(url, { wsdl_options: { cert: '/path/to/cert.pem', key:'/path/to/key.key' } } )
.then(function(client) {
console.error(client);
client.describe();
})
.catch(function(error) {
console.error(error);
});
}
这是我现在使用的代码,但这肯定是不对的。它返回以下错误(指向我的证书和私钥的路径正确):
[错误:错误:0906D06C:PEM例程:PEM_read_bio:无起始行]
根据文档,我似乎应该使用client.setSecurity进行SSL通信:
client.setSecurity(new soap.ClientSSLSecurity(
'/path/to/key'
, '/path/to/cert'
, {/*default request options*/}
));
但是,如果我只是这样做,并且忽略wsdl_选项,那么客户机在回调中返回为未定义,不允许我运行任何函数,包括setSecurity函数。我想这一定是两者的结合,但我不知道是什么结合
TL;DR尝试使用节点soap使用WSDL;此WSDL需要证书和私钥,以及使用用户名/pw进行身份验证。使用节点soap执行此操作的过程是什么?我是否必须安装证书(我在CentOS上),然后以某种方式引用它们
任何帮助都将不胜感激-如果您熟悉此过程,即使是其他库,也请参与!谢谢:)
编辑:修正!对于其他有类似问题的人,代码如下:
soap.createClient(url, { wsdl_options: { cert: fs.readFileSync('/path/to/cert.pem'), key: fs.readFileSync('/path/to/key.key'), passphrase: 'password' } } )
您可以发布自己的解决方案并将其标记为已接受,这样您的问题就不会无人回答。您可以发布自己的解决方案并将其标记为已接受,这样您的问题就不会无人回答。