我无法使用node.js作为客户端的node-soap模块将一个特定的soap参数格式化为第三方SOAP服务.
此方法的client.describe()表示此特定输入应为以下形状:
params: { 'param[]': {} }
Run Code Online (Sandbox Code Playgroud)
我尝试了一堆不同的JSON表示法来尝试使我的数据符合该形状.不起作用的格式示例:
"params": { "param": [ {"myParameterName": "myParameterValue"} ] }
"params": [ "param": { "name": "myParameterName", "_": "myParameterValue"} ]
"params": { "param" : [ {"name": "myParameterName", "_": "myParameterValue"} ] }
"params": { "param[]": {"myParameterName": "myParameterValue" } }
"params": { "param[myParameterName]": {"_": "myParameterValue" } }
Run Code Online (Sandbox Code Playgroud)
我必须忽略一些事情,我怀疑当一个好人指出我做错了什么时,我会觉得像上尉一样明显.
以下是DOES的工作原理,使用其他soap客户端,以及它们如何处理"带有值的命名参数"
此方法的soapUI通过XML成功接受此特定输入,形式为:
<ns:params>
<ns:param name="myParameterName">myParameterValue</ns:param>
</ns:params>
Run Code Online (Sandbox Code Playgroud)
此外,使用PHP,我可以通过创建一个stdClass数组成功地进行调用,如下所示:
$parms = new stdClass;
$parms->param = array(
array(
"name"=>"myParameterName","_"=>"myParameterValue"
)
);
Run Code Online (Sandbox Code Playgroud)
然后最终过世
'params' => $parms
Run Code Online (Sandbox Code Playgroud)
到PHP肥皂客户端
非常感谢!