我在使用 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" } }
我一定是忽略了一些事情,而且我怀疑当一些好人指出我做错了什么时,我会感觉自己像“显而易见的船长”。
这是使用其他肥皂客户端的工作原理,以及它们如何处理“带有值的命名参数”
此方法的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 Soap 客户端
非常感谢!