繁体   English   中英

如何在Node.js中以XML格式显示SOAP信封?

How can I display the SOAP envelope in XML format in nodejs?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个使用nodejs的简单SOAP服务,但是在弄清楚如何构建项目所需的正确信封结构时遇到了麻烦。

有没有一种方法可以显示发送到服务器的XML格式的SOAP信封?

我还尝试了forceSoap12Headers:true`,但是它没有在服务器中调用v12方法。 这里的任何提示都会很棒。

服务器

    "use strict";
    var soap = require('soap');
    var http = require('http');
    var myService = {
          ACME: {
            ACMESoap: {
              CalcFee: function(args, callback) {
                      callback({
                          "ns1:barcodeReceive": args.cardNumber,
                          "ns1:requestId": args.requestId,
                          "ns1:calculatedFee": 0.15
                      });
                  },
              LoadCard: function(args, callback) {
                      callback({
                          "ns1:barcodeReceived": args.cardNumber,
                          "ns1:requestId": args.requestId,
                          "ns1:transactionAmount": '100.00',
                          "ns1:currency": 'EUR'
                      });
                  }
            },
            ACMESoap12: {
              CalcFee: function(args, callback) {
                      callback({
                          "ns1:barcodeReceived": args.cardNumber,
                          "ns1:calculatedFee": 0.15
                      });
                  },
              LoadCard: function(args, callback) {
                      callback({
                          "ns1:barcodeReceived": args.cardNumber,
                          "ns1:transactionAmount": '100.00',
                          "ns1:currency": 'EUR'
                      });
                  }
            }
          }
        };
    var port = 7777;
    var xml = require('fs').readFileSync('ACMEService.wsdl','utf8');
    var server = http.createServer(function(request,response) {  
      response.end("404: Not Found: " + request.url);
    });
    console.log('Started server on port ' + port);
    server.listen(port);

    soap.listen(server,'/wsdl',myService, xml);

客户

    "use strict";
    console.log('Started Client...');
    const util = require('util')
    var soap = require('soap');
    var url = 'http://ACME.net:7777/wsdl?wsdl';
    var args = {
      requestId: '2833007',
      cardNumber: '3452345234'
    };
    var args2 = {
      requestId: '2833008',
      cardNumber: '56345634563'
    };
    var options = {
        forceSoap12Headers: true
    };
    soap.createClient(url, options, function(err,client) {
      client.CalcFee(args,function(err, result, rawResponse) {
        console.log(rawResponse);
        // console.log(client.describe());
      });
      client.LoadCard(args2,function(err,result, rawResponse) {
        console.log(rawResponse);
      });
    });
1 个回复

我发现我可以将请求发送回客户端进行显示。

服务器

...
callback({
    "tns:RECEIVED_ENVELOPE": args
});
...
4 如何使用Ruby从此SOAP信封中提取/解析?

我正在使用使用soap / wsdlDriver的宝石。 发布后,我得到了SOAP响应,无法轻松解析它。 这是我得到的回复: 我需要在id =“ xxxx”中获取整个值 这是在heroku上获得的(注意:它在本地有效)。 这来自于测试response.id的各种变体( ...

5 如何在php soap请求信封上发送Null参数?

我已经尝试了几天,但没有成功 这是我的代码: 我想念什么? 每次执行代码时,都会出现此错误: 我检查并重新检查了指定的行和列,在xml中看不到任何错误。 任何帮助将不胜感激; 提前致谢! ...

6 我该如何改变

我的 wcf 和我的服务的soap xml 响应有问题。 如何将<s:Envelope更改为<SOAP-ENV:Envelope ? 我想这必须是可以通过属性来控制的吗? 我使用 .NET 4.0、c#、basicHttpBinding 和 messagecontracts ...

8 如何在 Python 中使用 SOAP API(XML 格式)?

我以前从未使用过 SOAP API。 与 REST API 不同,在 Python 中使用 SOAP API 似乎并不那么简单。 由于 REST API 带有 JSON 格式,您可以通过执行诸如data.student.name类的操作来data.student.name访问。 我有以下带有 XML ...

9 如何使用 Postman 可视化 XML SOAP 信封

我正在尝试使用此处和此处提供的文档将 Postman 中的 SOAP 信封可视化为一个简单的表格。 这是我的有效载荷的样子: 这是我到目前为止在我的测试脚本中的内容: 我想要做的是从Results > Properties > Property > Name动态生成所有标 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM