我正在尝试使用 node-soap 连接到第三方 Web 服务,但每当我使用 Web 服务中的方法时,我都会得到一个巨大的对象而不是正确的响应数据。
var soap = require('soap');
var soapWSDL = "https://staging.refcheckadvanced.co.za/RefCheck_Integrator/services/v2/RefCheck.svc?wsdl";
soap.createClient(soapWSDL, function (err, client) {
if (err) throw err;
client.IsHealthy({}, function(err,result) {
console.log(result);
});
});
有谁知道我做错了什么?
PHP 肥皂信封:
<SOAP-ENV:Body>
<ns1:IsHealthy/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
节点肥皂信封:
<soap:Body>
<tns:IsHealthy xmlns:tns="http://tempuri.org/" xmlns="http://tempuri.org/">
</tns:IsHealthy>
</soap:Body>
</soap:Envelope>
有没有办法将node-soap配置为使用与PHP相同的格式?
WSDL 是动态生成的还是静态生成的? 它对我有用...
我的回答是:{ IsHealthyResult: '2015/02/03 11:56:48 AM' }
但是现在当我尝试节点肥皂时会抛出错误(您不处理)
试试这个,你(也许)会看到err
设置好了:
soap.createClient(soapWSDL, function (err, client) {
if (err) throw err;
client.IsHealthy({}, function(err,result) {
if (err) {
console.log(err.message);
} else {
console.log(result);
}
});
});
返回: Cannot read property 'Body' of undefined
尝试使用节点检查器(跨平台)或NTVS(Windows + Visual Studio)进行调试
您将看到 node-soap 在 libclient.js:183
中捕获异常并在回调中设置错误。为什么它短暂地对我有用,我不知道... =P
但它提醒您始终检查回调中的err