我正在调用一个 API,需要向它发送一个带有凭据的 JSON 字符串。我们目前正在从 CF9 过渡到 CF2016。在 DEVL 我有两个版本。在测试和生产中,我目前只有 CF9。最初我编写了代码并在 CF2016 上进行了测试,它运行良好。当我将它推到测试时,它不起作用。我在 CF9 上的 DEVL 中重试了,它也出错了。代码是:
<cfset logininfo = {"username": "eistech", "password": "#sat_pw#"}>
<cfset fromdate=dateformat(DateAdd('d', -1, dat), "yyyy-MM-dd") & 'T00:00:00-0500'>
<!--- Get token info--->
<cfhttp url="https://scoresdownload.collegeboard.org/pascoredwnld/files/list?fromDate=#fromdate#" method="post" result="finfo">
<cfhttpparam name="Content-Type" type="HEADER" value="application/json">
<cfhttpparam name="Accept" type="HEADER" value="application/json">
<cfhttpparam type="body" value="#serializeJSON(logininfo)#">
</cfhttp>
在 CF9 中运行它时,我得到:
在第 5 行第 20 列发现无效的 CFML 构造。ColdFusion 正在查看以下文本:
{ (Line 20 is <cfset logininfo = {"username": "eistech", "password": "#sat_pw#"}>
我尝试用单引号将其括起来,但这在两种情况下都失败了。我怎样才能让它同时在 CF2016 和 CF9 中工作?