我正在使用 node-soap 与 Web 服务进行通信,但我无法让它工作。
下面的代码会引发错误 ECONNREFUSED。但是,如果我不将 args 变量放入函数中,我会得到响应。有谁知道会是什么?
var soap = require('soap');
var wsdl, url;
var args = {cargoSn: 'MSWU0031179'};
soap.createClient(url, function(err, client) {
//console.log('client');
console.log(client.describe().TransportWebService.TransportWebServiceSoap.GetContainerPosition);
client.GetContainerPosition(args, function(err, result) {
console.log('err');
console.log(err);
console.log('result');
console.log(result);
}, {
proxy: "http://127.0.0.1:8888",
strictSSL: false
});
console.log(client.lastRequest);
}, url);
这是我从上面运行代码时得到的:
err
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }
result
undefined
这就是我在没有参数的情况下调用它时得到的:
client.GetContainerPosition(function(err, result) { ...
err
null
result
{ GetContainerPositionResult: '{"Status":"ERROR","Description":"Nothing found with serial number: ","Data":null}' }
因此,它在没有传递参数时有效(显然什么也没找到),但在传递时会出错。