使用“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标头?具体来说,我想在HTTP标头内部使用Cookie参数。
Node / Express能做什么?或者我需要另一个包来实现这个目标吗?
提前致谢。
答案 0 :(得分:2)
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);
});
});
答案 1 :(得分:0)
我遇到了同样的问题,现在已经有一段时间了。我已经取得了一些进展,我可以看到cookie,但它们并没有完全按照我的预期完成。我不确定我做错了什么,或者它是否特定于我试图触及的服务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);
});
});