NodeJS - 如何获取 SOAP Web 服务响应的 HTTP 标头



使用带有"soap"包的NodeJS中的SOAP Web服务时。像这样:

var soap = require('soap');
var url = 'http://example.com/wsdl?wsdl';
var args = {name: 'value'};
clientsoap.createClient(url, function(err, client) {
    client.MyFunction(args, function(err, result, raw, soapHeader) {
        console.log(result);
    });
});

如何获取对MyFunction的响应的HTTP标头?具体来说,我希望Cookie参数位于HTTP头中。

这是Node/Express可以做到的吗?或者我需要另一个方案来实现这一点吗?

提前谢谢。

NodeJS soap模块在调用方法时存储客户端的最后一个响应头,所以只需在回调中访问它:

var soap = require('soap');
var url = 'http://somewhere.com?wsdl';
var args = {name: 'value'};
soap.createClient(url, function(err, client) {
  client.myFunction(args, function(err, result) {
    console.log(client.lastResponseHeaders);        
  });
});

我遇到了同样的问题,并且已经处理了一段时间。我已经取得了一些进展,我可以看到饼干,但它们并没有像我预期的那样通过。我不确定是我做错了什么,还是它特定于我试图访问的服务WSDL。但这是我的解决方案。。。

soap.createClient(pathOrUrlToWSDL, function(err, client) {
    client.myFunction(args, function(err, result, raw, soapHeader) {
        console.log(err, result, raw, soapHeader);
    });
    // -- should reach the response before the callback in client.myFunction()
    client.on('response', function(envelope, message) {
        // -- couldn't find documentation on this function, so I just named the variables 'envelope' and 'message'
        console.log(message.headers);
    });
});

相关内容

  • 没有找到相关文章

最新更新