Node-SOAP未返回预期结果

时间:2015-02-03 09:54:30

标签: node.js soap node-soap

我正在尝试使用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信封:

    <SOAP-ENV:Body>
        <ns1:IsHealthy/>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Node-SOAP Envelope:

    <soap:Body>
        <tns:IsHealthy xmlns:tns="http://tempuri.org/" xmlns="http://tempuri.org/">
        </tns:IsHealthy>
</soap:Body>
</soap:Envelope>

有没有办法配置node-soap使用与PHP相同的格式?

1 个答案:

答案 0 :(得分:1)

wsdl是动态生成还是静态生成?它对我来说很简单......

我的回答是:{ IsHealthyResult: '2015/02/03 11:56:48 AM' }

但是现在当我尝试node-soap抛出一个错误(你没有处理)

试试这个,你(也许)会看到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

尝试使用node-inspector(跨平台)或NTVS(Windows + Visual Studio)进行调试

您将看到node-soap在\lib\client.js:183中捕获异常并在回调中设置错误。为什么它简单地为我工作我没有线索... = P

但它提醒您始终在回调中查看err