我尝试使用node-soap模块,如下所示:
const soap = require('soap');
soap.createClient('some-wsdl-url', function(err, client) {
const args = {
'ValidateCustomerRequest': {
'memberNumber': 12345
}
};
client.ValidateCustomer(args, function(err, result) {
console.log(result);
});
});
Run Code Online (Sandbox Code Playgroud)
现在我收到了来自webservice的"无效格式"响应.为了调试这个,我非常想看看发送到webservice的实际XML是什么样的.
我已经尝试过这个:
require('request').debug = true
Run Code Online (Sandbox Code Playgroud)
......在另一个SO答案中提出了建议.
但输出没有帮助:
[ERROR] REQUEST { uri:
Url { ... },
method: 'GET',
headers:
{ 'User-Agent': 'node-soap/0.18.0',
Accept: 'text/html,application/xhtml+xml,application/xml,text/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding': 'none',
'Accept-Charset': 'utf-8',
Connection: 'close',
Host: 'xxx' },
followAllRedirects: true,
body: null,
callback: [Function] }
Run Code Online (Sandbox Code Playgroud)
我没有在那里看到我的"ValidateCustomerRequest"并且body是null.另外我想知道为什么方法是GET,不应该是POST吗?
那么这个调试输出看起来是否正常和/或是否有另一种方法来查看创建的XML请求?
ush*_*189 22
我忽略了这一点文档:
客户.lastRequest - 包含客户端日志记录的上一个完整soap请求的属性
您可以在webservice调用的回调中记录它.所以上面的代码将如下所示:
const soap = require('soap');
soap.createClient('some-wsdl-url', function(err, client) {
const args = {
'ValidateCustomerRequest': {
'memberNumber': 12345
}
};
client.ValidateCustomer(args, function(err, result) {
console.log(result);
console.log('last request: ', client.lastRequest) // <-- here
});
});
Run Code Online (Sandbox Code Playgroud)
这将输出生成的XML请求.