这在php上运行正常,但它不在node.js上 我收到以下错误(我替换了clientlink的实际服务 我不是节点专家所以我不知道从哪里开始, 谢谢你的一切!!!
正文:'\ r \ n \ t \ r \ n \ t \ t \ r \ n \ n \ t \ t \ t \ t \ tapap:服务器\ r \ n \ t \ t \ t \ t错误响应(代码500来自 clientlink / soap:&lt; soap:Enve lope 的xmlns:SOAP =“http://schemas.xmlsoap.org/soap/envelope/"><soa 号码:身体与GT;&LT;皂:故障&GT;&LT;&的faultcode GT;肥皂:客户端与LT; /&的faultcode GT;&LT; FA ultstring&gt;解组错误:意外元素 (uri:“clientlink”,local:“callerIp”)。 预期的元素是 &安培; LT; {} enterpriseActorId&GT;,&安培; LT; {} onBelhalfOfId&GT;,&安培;是 磷; LT; {} externalClientId&GT;,&安培; LT; {} callerIp&GT;,&安培; LT; {}的actorId&GT;,&安培; LT ; {} agencyIdLong&GT;,&安培; LT; {} onBehalfOfId&GT;,&安培; LT; {}的applicationID&GT;,&安培; LT; {} actionId&GT;,&安培; LT; {} agencyId&GT; &LT; / faultstring&GT;&LT; /皂:故障&GT; &LT; /皂:身体与GT;&LT; /皂:信封&GT; \ n \ r \ n \吨\吨\ r \ n \ t \ r \ n'},
节点上的代码是:
var url = 'clientlink';
var args = {
"context": {
"appToken": 'MEGATOKEN'
},
"version": 1.0
};
soap.createClient(url, function(err, client) {
if (err) {
console.log(err);
callback(err);
return
}
client.getEvents(args, function(err, result) {
if (err) {
console.log(err);
callback(err);
return;
}
console.log(result);
});
});
php上的代码工作正常!
$soapClient = new SoapClient('clientlink');
$params['context']['appToken'] = 'MEGATOKEN';
$params['version'] =1.0;
$info = $soapClient->__call('getEvents', array($params));
感谢您阅读第二个感谢!! :)
答案 0 :(得分:1)
首先使用describe()
查看远程服务的哪些方法可用。
//...
soap.createClient(url, function(err, client) {
if (err) {
// ...
} else {
client.describe();
}
});
以下是client.describe()
的输出示例:
{
MyService: {
MyPort: {
getEvents: {
input: {
name: 'string'
}
}
}
}
}
然后你可以这样打电话给getEvents()
:
//...
soap.createClient(url, function(err, client) {
if (err) {
// ...
} else {
client.MyService.MyPort.getEvents({name: 'value'}, function(err, result) {
// ...
});
}
});