【发布时间】:2015-01-26 22:13:04
【问题描述】:
所以我正在尝试使用 Coldfusion 将一系列电子邮件发布到 API。
为了快速了解 API 架构,
{
"emails":["foo@bar.com", "bar@foo.com"],
"orgId":1,
"subject":"foobar",
"body":"foobar",
"sender":"foobar@com"
}
现在这是我的冷融合脚本
<cffunction name="inviteusers" access="public" returntype="any">
<cfset var data = "" />
<cfhttp url="urlserver#UserInvite" method="post" username="#username#" password="#urlpass#" result="data">
<cfhttpparam name="emails" this is array or emails>
<cfhttpparam name="orgID" type="formType" value="1">
<cfhttpparam name="body" type="formType" value="this is the body">
<cfhttpparam name="sender" type="formType" value="hmm@yahoo.com">
</cfhttp>
</cffunction>
电子邮件是我卡住的地方。我不知道如何解决这个问题。
谢谢你们!
【问题讨论】:
-
API 是否真的期望接收 JSON?如果是这样,上述将不起作用。否则,请尝试使用两个
<cfhttpparam name="emails"...>` 标签,每个地址一个。结果如何? -
嗨@Leigh,如果API 需要JSON,您能否解释一下为什么上述方法不起作用?是的,API 接收并返回 JSON。如果我为每个地址做一个,这意味着我必须根据电子邮件地址的数量调用这个 API 或者做一个 foreach 循环..
-
JSON 是一个特定格式的字符串。上面的代码只是通过标准帖子发送键/值对。它不会自动将数据转换为 JSON。因此,如果这是接收端所期望的,它可能不会起作用。您能否提供指向 API 文档的链接?您很可能需要使用各种 orgId 等创建一个 CF 结构。然后使用
SerializeJSON,但我们需要查看 API 以提供更具体的建议。 -
@Leigh 啊!我明白了,我的坏。对不起,不完整的细节。我正在使用带有
datatype: 'json'到inviteuser方法的Jquery 帖子到控制器类(在MVC 框架上工作)。我已经创建了一个 Javascript obj 来包含我需要的数据,就像您在上面解释的那样(只是在 Javascript 中呵呵^^).. 非常感谢 Leigh!我终于设法回答了这个问题..我会在这里发布
标签: arrays post parameters coldfusion