我在node.js中使用这个库来进行SOAP API调用: https://github.com/vpulim/node-soap
这些呼叫正在向Cisco CUCM(VOIP应用服务器)发出。这是我正在使用的代码。要给出上下文,它所要做的就是使用getPhone方法获取特定手机的详细信息,在此示例中使用设备名称SEPAAAABBBBCCCC。
var soap = require("soap");
var url = "AXLAPI.wsdl";
var auth = "Basic " + new Buffer("axl" + ":" + "cisco").toString("base64");
var args = {
name: "SEPAAAABBBBCCCC"
};
soap.createClient(url, function(err, client) {
client.setEndpoint("https://192.168.138.15:8443/axl");
client.addHttpHeader("Authorization", auth);
client.setSecurity(new soap.ClientSSLSecurity(undefined,undefined, undefined, {rejectUnauthorized: false,},));
client.getPhone(args, function(err,result) {
if (err) {
console.log("soap api error is: " + err);
console.log("last request: " + client.lastRequest);
process.exit(1);
}
console.log("result is: " + result);
});
if (err) {
console.log("soap client error is: " + err);
}
});
它不起作用。当我打印错误时,它只显示“错误:无法解析响应”。这不是很有帮助。我考虑过捕获数据包,但应用程序只允许使用HTTPS,因此所有流量都是加密的。
我想要做的是记录完整的数据包详细信息,即HTTP标头和XML请求,还完成HTTP响应。我知道client.lastRequest将显示XML,但我也需要查看HTTP标头,因为思科需要一些自定义的标头。有什么想法吗?