我在easysoap(https://npmjs.org/package/easysoap)上遇到了一些问题,并且我找不到太多的文档或谈论它的人,所以我希望你们中的一些人可以提供帮助:
我正在这样打一个简单的电话:
var clientParams = {
host : 'somewhere.com',
port : '9001',
path : '/somews.asmx',
wsdl : '/somews.asmx?WSDL'
};
var clientOptions = {
secure : false
};
//create new soap client
var SoapClient = new soap.Client(clientParams, clientOptions);
SoapClient.once('initialized', function() {
//successful initialized
SoapClient.once('soapMethod', function(data, header) {
});
console.log('call');
SoapClient.call({
'method' : 'Execute',
'params' : {
'ExecuteXML' : 1
}}, function(attrs, err, responseArray, header){
}
);
});
//initialize soap client
SoapClient.init();
问题是我收到回复说我无权提出请求,但是如果我在浏览器http://somewhere.com:9001/somews.asmx中手动尝试相同的URL,它确实可以工作。
你知道我在做什么错吗?
非常感谢。
如果您知道要实现此目标的任何其他 Node 模块,请告诉我。我尝试使用 Node SOAP ,但是迷失了所需的所有依赖项:python,Visual Studio ...您真的需要所有这些来对服务器进行两次 SOAP 调用???
谢谢
最佳答案
对于其他的nodejs soap模块。我目前使用node-soap并对此感到满意。您可以找到项目here。
这是我如何使用它的一个例子。
var soap = require('soap');
//example url
var url = 'http://ws.strikeiron.com/GlobalAddressVerification5?WSDL';
var soapHeader = ''//xml string for header
soap.createClient(url, function(err, client){
client.addSoapHeader(soapHeader);
var args = {
StreetAddressLines: "5322 Otter Lane",
CountrySpecificLocalityLine: "Middleberge FL 32068",
Country: "USA"
};
client.BasicVerify(args, function(err, result){
if(err){
throw err;
}
console.log(result);
});
});