我有一个FIX(财务信息交换)消息格式,例如35=U1 49=GEMI1 8=FIX.4.1 9=732或8=FIX.4.1 9=751 35=U1 34=3 49=GEMI2 52=20160125-10:52:21 ,我将其转换为XML格式。 我想以如下所示的SOAP格式转换或显示这 ...
提示:本站收集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);
});
});
我发现我可以将请求发送回客户端进行显示。
服务器
...
callback({
"tns:RECEIVED_ENVELOPE": args
});
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.