【发布时间】:2014-07-09 03:20:45
【问题描述】:
我在使用 node.js 的 node-soap 模块作为客户端将一个特定的 soap 参数正确格式化为第 3 方 SOAP 服务时遇到了问题。
此方法的 client.describe() 表示此特定输入的形状应为:
params: { 'param[]': {} }
我尝试了一堆不同的 JSON 符号来尝试使我的数据适合该形状。 无效的格式示例:
"params": { "param": [ {"myParameterName": "myParameterValue"} ] }
"params": [ "param": { "name": "myParameterName", "_": "myParameterValue"} ]
"params": { "param" : [ {"name": "myParameterName", "_": "myParameterValue"} ] }
"params": { "param[]": {"myParameterName": "myParameterValue" } }
"params": { "param[myParameterName]": {"_": "myParameterValue" } }
我一定是忽略了什么,我怀疑当某个好人指出我做错了什么时,我会觉得自己像显而易见的船长。
这是使用其他soap客户端的工作原理,以及它们如何处理“带值的命名参数”
此方法的soapUI 通过 XML 成功接受此特定输入,格式为:
<ns:params>
<ns:param name="myParameterName">myParameterValue</ns:param>
</ns:params>
另外,使用 PHP,我可以通过创建 stdClass 数组来成功调用,如下所示:
$parms = new stdClass;
$parms->param = array(
array(
"name"=>"myParameterName","_"=>"myParameterValue"
)
);
然后最终通过
'params' => $parms
到 PHP 肥皂客户端
非常感谢!
【问题讨论】: