首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node-SOAP未返回预期结果

Node-SOAP未返回预期结果
EN

Stack Overflow用户
提问于 2015-02-03 17:54:30
回答 1查看 2K关注 0票数 1

我试图使用node-soap连接到第三方web服务,但每当我使用web服务中的方法时,我都会得到一个巨大的对象,而不是正确的响应数据。

代码语言:javascript
复制
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信封:

代码语言:javascript
复制
    <SOAP-ENV:Body>
        <ns1:IsHealthy/>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Node-SOAP信封:

代码语言:javascript
复制
    <soap:Body>
        <tns:IsHealthy xmlns:tns="http://tempuri.org/" xmlns="http://tempuri.org/">
        </tns:IsHealthy>
</soap:Body>
</soap:Envelope>

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

EN

回答 1

Stack Overflow用户

发布于 2015-02-03 18:57:05

wsdl是动态生成的还是静态生成的?它对我来说是短暂的。

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

但是现在,当我尝试使用node-soap时,它会抛出一个错误(您不能处理)。

试试这个,你(也许)会看到err已经设置好了:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28295938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档