我正在开发一个服务调用脚本,如下所示:
<cfinvoke webservice="#ServiceURL#" method="AddCustomer" returnvariable="ResponseData" argumentcollection="#stAguments#">
<cfinvokeargument name="api_key" value="#ServiceKey#" />
</cfinvoke>
显然,在此调用之前填充了stAguments结构。想象一下,您忘记将参数之一添加到此容器中或使用了错误的参数类型,例如创建了无效请求。ColdFusion 抛出可以被捕获的异常,但不能(不是字面意思)被读取:
*Web service operation AddCustomer with parameters {postcode={12345},org_name={Terms test 7.79661762856},fax={},html={1},addr1={address1},firstname={sergey},city={Austin},country={},taxable={},notify={1},lastname={galashyn},addr2={},ssn={},api_key={8FE9AD0BCF2382D92A1080DB3AA62DB9},taxrate={0},terms={Net 15},active={},state={},salutation={Mr.},password={123},account_manager={1}} cannot be found.*
手动一一检查所有这些参数让我大吃一惊。这就是问题。
也许有人使用一些技术来使这更容易。
我什至考虑过某种解析器来自动进行这种比较。
将欣赏任何想法和想法。
谢谢你。
PS对不起我的英语——不是我的母语。请问我是不是写的不够清楚。
编辑:
澄清。问题不在于访问服务。我是它的所有者,我绝对知道每种方法的所有参数及其类型。
问题仅在于创建请求时读取错误消息——填充方法参数容器。
例如,方法有 10 个参数,但我不小心添加了 9 个 - CF 的本地实例抛出错误,该方法无法找到并显示我已传递的字段的原始列表(上面列出的)。我需要将它们与方法参数一一进行比较,以找到我错过的内容。
确实,这是一个可用性和节省时间的问题。