NODEJS SOAP:对象引用未设置为对象的实例

时间:2019-04-24 10:52:03

标签: node.js xml soap wsdl strong-soap

我收到一个错误:

  

对象引用未设置为对象的实例

我在请求中缺少了一些内容,但无法弄清楚。任何帮助表示赞赏。

我尝试使用soap模块以及strong-soap模块,但是两者都发生相同的错误。因此,这可能是请求参数中的错误。

  

对象引用未设置为对象的实例

代码:

"use strict";

var soap = require('strong-soap').soap;

var url = 'http://test.eprabhu.com/Api/Utility.svc?wsdl&UserName=CLIENT';
var requestArgs = {
    'UserName': 'CLIENT',
    'Password': 'CLIENT12',
    'OperatorCode': 2,
    'MobileNumber': '9803111111',
    'Amount': 100,
    'PartnerTxnId': 'P201904220218335187'
};

var options = {
  'user-agent': 'sampleTest',
  'Content-Type': 'text/xml;charset=UTF-8',
  // 'soapAction': 'http://test.eprabhu.com/Api/Utility.svc?wsdl#MobileTopup',
  'soapAction': 'http://tempuri.org/IUtility/MobileTopup'
};

soap.createClient(url, options, function(err, client) {

    var method = client['MobileTopup'];
    method(requestArgs, function(err, result, envelope, soapHeader) {
        //response envelope
        console.log('Response Envelope: \n' + envelope);
        //'result' is the response body
        console.log('Result: \n' + JSON.stringify(result));

        console.log('Soap Header: \n', soapHeader);
    });
});

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:1)

将您的参数更改为:

var requestArgs = {
  MobileTopupRequest: {
    UserName: 'CLIENT',
    Password: 'CLIENT12',
    OperatorCode: 2,
    MobileNumber: '9803111111',
    Amount: 1,
    PartnerTxnId: 'P201904220218335187'
  }
};