node js soap request error: Unexpected root element of WSDL or include
node js soap request error: Unexpected root element of WSDL or include
我正在尝试使用 soap 模块将 soap api 集成到 node.js 中。当我点击 api 时,我得到的错误是 'Unexpected root element of WSDL or include'。这些是肥皂 api 的详细信息:
POST /calculator.asmx HTTP/1.1
Host: www.dneonline.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<Add xmlns="http://tempuri.org/">
<intA>int</intA>
<intB>int</intB>
</Add>
</soap12:Body>
</soap12:Envelope>
而我写的node js代码如下:
var soap = require('soap');
var url = 'http://www.dneonline.com/calculator.asmx';
var add = function(req, res){
var args = {intA: 1,intB: 2};
var soapHeader = ''//xml string for header
soap.createClient(url, function(err, client) {
if(err){
res.status(400).send(err)
} else {
client.Add(args, function(err, result) {
console.log('result ',result);
res.send(result)
});
}
});
}
exports.add = add
我认为这个错误来自 soap 模块。那么请求中是否缺少某些内容,或者应该设置什么 headers 才能使 nodejs 代码正常工作?
尝试将 url 更改为 http://www.dneonline.com/calculator.asmx?WSDL
例如
var url = 'http://www.dneonline.com/calculator.asmx?WSDL';
我创建了一个简单的 add 方法调用:
var soap = require('soap');
var url = 'http://www.dneonline.com/calculator.asmx?WSDL';
var args = {intA: 1,intB: 2};
console.log('Creating client..');
soap.createClient(url, function(err, client) {
if(err){
console.log('Error creating client: ', err);
} else {
console.log('Client created..');
client.Add(args, function(err, result) {
console.log('result ',result);
});
}
});
我得到以下结果:
Creating client..
Client created..
result { AddResult: 3 }
我正在尝试使用 soap 模块将 soap api 集成到 node.js 中。当我点击 api 时,我得到的错误是 'Unexpected root element of WSDL or include'。这些是肥皂 api 的详细信息:
POST /calculator.asmx HTTP/1.1
Host: www.dneonline.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<Add xmlns="http://tempuri.org/">
<intA>int</intA>
<intB>int</intB>
</Add>
</soap12:Body>
</soap12:Envelope>
而我写的node js代码如下:
var soap = require('soap');
var url = 'http://www.dneonline.com/calculator.asmx';
var add = function(req, res){
var args = {intA: 1,intB: 2};
var soapHeader = ''//xml string for header
soap.createClient(url, function(err, client) {
if(err){
res.status(400).send(err)
} else {
client.Add(args, function(err, result) {
console.log('result ',result);
res.send(result)
});
}
});
}
exports.add = add
我认为这个错误来自 soap 模块。那么请求中是否缺少某些内容,或者应该设置什么 headers 才能使 nodejs 代码正常工作?
尝试将 url 更改为 http://www.dneonline.com/calculator.asmx?WSDL
例如
var url = 'http://www.dneonline.com/calculator.asmx?WSDL';
我创建了一个简单的 add 方法调用:
var soap = require('soap');
var url = 'http://www.dneonline.com/calculator.asmx?WSDL';
var args = {intA: 1,intB: 2};
console.log('Creating client..');
soap.createClient(url, function(err, client) {
if(err){
console.log('Error creating client: ', err);
} else {
console.log('Client created..');
client.Add(args, function(err, result) {
console.log('result ',result);
});
}
});
我得到以下结果:
Creating client..
Client created..
result { AddResult: 3 }