在ColdFusion中使用PUT请求创建Wufoo webhook
我在为Wufoo构建正确的PUT请求时遇到了麻烦。
在我的所有尝试中,我看到同样的错误:
404 A WebHook must contain a url parameter.
以下是具有JSON数据类型的版本:
<cfset local.action = "forms/#local.formHash#/webhooks.json" />
<cfset local.request = {"url" : local.webHookURL, "handshakeKey" : local.webHookKey} />
<cfset local.request["handshakeKey"] = local.webHookKey />
<cfhttp url="#local.baseURL##local.action#" method="put" username="#local.apiKey#" password="#local.apiPass#">
<cfhttpparam type="header" name="Content-Type" value="application/json; charset=UTF-8" />
<cfhttpparam type="body" value="#SerializeJSON(local.request)#" />
</cfhttp>
使用file
时失败相同:
<cfset local.action = "forms/#local.formHash#/webhooks.json" />
<cfset local.request = {"url" : local.webHookURL, "handshakeKey" : local.webHookKey} />
<cffile action="write" file="#GetTempDirectory()#webhook.json" output="#SerializeJSON(local.request)#">
<cfhttp url="#local.baseURL##local.action#" method="put" username="#local.apiKey#" password="#local.apiPass#">
<cfhttpparam type="header" name="Content-Type" value="application/json; charset=UTF-8" />
<cfhttpparam type="file" mimetype="application/json" name="json" file="#GetTempDirectory()#webhook.json" />
</cfhttp>
更新:
要使代码在ACF中工作(我的代码仅在Railo中工作),请使用以下语法进行请求:
<cfset local.request = {} />
<cfset local.request["url"] = local.webHookURL />
<cfset local.request["handshakeKey"] = local.webHookKey />
两种方法都应该使用区分大小写的密钥生成相同的JSON。
我也尝试过XML数据类型:
<cfset local.action = "forms/#local.formHash#/webhooks.xml" />
<cfsavecontent variable="putXML">
<cfoutput>
<?xml version="1.0" encoding="UTF-8"?>
<WebHookPutRequest>
<url>#XMLFormat(local.webHookURL)#</url>
<handshakeKey>#XMLFormat(local.webHookKey)#</handshakeKey>
</WebHookPutRequest>
</cfoutput>
</cfsavecontent>
<cffile action="write" file="#GetTempDirectory()#webhook.xml" output="#Trim(putXML)#">
<cfhttp url="#local.baseURL##local.action#" method="put" username="#local.apiKey#" password="#local.apiPass#">
<cfhttpparam type="header" name="Content-Type" value="application/xml; charset=UTF-8" />
<cfhttpparam type="body" value="#putXML#" />
</cfhttp>
在这里,我不确定我的XML是否正确,但对于JSON,一切都应该没问题。
任何想法我的代码有什么问题?
提前致谢。
没有找到相关结果
已邀请:
3 个回复
吐兄
编码作为请求的正文。在ColdFusion中,您可以使用
执行此操作。
但是,ColdFusion用
方法拒绝这种技术。您可以使用以下方法自行编码身体:
裸雷胜檀哭
这为您提供了一个带键
和
的结构。 在Web上,可能包括Wufoo REST API,密钥区分大小写。在这种情况下,Wufoo接受键
,
和
- 在那个大写中。 在ColdFusion中,带有struct puts(赋值)的关联数组表示法可以让你保持你想要的精确套管。
这为您提供了一个带键
和
的结构。
艰管垮淮