xml-rpc with coldfusion - 如何传入参数?
xml-rpc with coldfusion - how to pass in parameters?
我正在尝试从 coldfusion 服务器进行 xml-rpc 调用。我发现这个 xml-rpc cfc(谢谢,Brad Wood!)为 cfhttp 调用格式化 xml,但我正在努力解释如何传递调用名称以外的任何参数。
这是使用 perl
的 api 文档
这是我的冷融合代码
<cfobject component="xmlrpc" name="c">
<cfset arr = arraynew(1)>
<cfset arrayappend(arr,"service.show")>
<cfset arrayappend(arr,myVIP)>
<cfset arrayappend(arr,myIP)>
<cfset arrayappend(arr,myPort)>
<cfset myxml = c.CFML2XMLRPC(arr,"call")>
<cfhttp url="#apiUrl#" method="POST">
<cfhttpparam name="request_body" value="#myxml#" type="XML">
</cfhttp>
我不断收到的错误消息是:
Can't use string (myVIP...) as a HASH ref while "strict refs" in
use at /home/...
所以我不明白的是如何翻译我在 perl 中看到的符号 {parameter1=>'value1',parameter2=>'value2'} 到我传递给 CFML2XMLRPC 的数组。
我想出来了,现在看起来很明显......你必须使用结构来保存参数并将其传递到方法字符串之后的数组中。
<cfset arr = arraynew(1)>
<cfset arrayappend(arr,"service.show")>
<cfset paramObj = structnew()>
<cfset paramObj['vip'] = myVIP>
<cfset paramObj['ip'] = myIP>
<cfset paramObj['port'] = myPort>
<cfset paramObj['show'] = "status/state">
<cfset arrayappend(arr,paramObj)>
我发现 jquery xml-rpc 文档有助于理解 xml 的实际格式。
注:
的表示法
<cfset paramObj['ip'] = myIP>
对比
<cfset paramObj.ip = myIP>
很重要,因为后者将导致 xmlrpc.cfc 中的参数名称全部大写。 (感谢 comment by Dave Merrill on this post)
我正在尝试从 coldfusion 服务器进行 xml-rpc 调用。我发现这个 xml-rpc cfc(谢谢,Brad Wood!)为 cfhttp 调用格式化 xml,但我正在努力解释如何传递调用名称以外的任何参数。
这是使用 perl
的 api 文档这是我的冷融合代码
<cfobject component="xmlrpc" name="c">
<cfset arr = arraynew(1)>
<cfset arrayappend(arr,"service.show")>
<cfset arrayappend(arr,myVIP)>
<cfset arrayappend(arr,myIP)>
<cfset arrayappend(arr,myPort)>
<cfset myxml = c.CFML2XMLRPC(arr,"call")>
<cfhttp url="#apiUrl#" method="POST">
<cfhttpparam name="request_body" value="#myxml#" type="XML">
</cfhttp>
我不断收到的错误消息是:
Can't use string (myVIP...) as a HASH ref while "strict refs" in use at /home/...
所以我不明白的是如何翻译我在 perl 中看到的符号 {parameter1=>'value1',parameter2=>'value2'} 到我传递给 CFML2XMLRPC 的数组。
我想出来了,现在看起来很明显......你必须使用结构来保存参数并将其传递到方法字符串之后的数组中。
<cfset arr = arraynew(1)>
<cfset arrayappend(arr,"service.show")>
<cfset paramObj = structnew()>
<cfset paramObj['vip'] = myVIP>
<cfset paramObj['ip'] = myIP>
<cfset paramObj['port'] = myPort>
<cfset paramObj['show'] = "status/state">
<cfset arrayappend(arr,paramObj)>
我发现 jquery xml-rpc 文档有助于理解 xml 的实际格式。
注:
的表示法<cfset paramObj['ip'] = myIP>
对比
<cfset paramObj.ip = myIP>
很重要,因为后者将导致 xmlrpc.cfc 中的参数名称全部大写。 (感谢 comment by Dave Merrill on this post)