5

我正在调用一个 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 中工作?

4

1 回答 1

10

CF9 不理解:问题中使用的 JSON 字符串。使用=

<cfset logininfo = {"username"= "eistech", "password"= "#sat_pw#"}>
于 2018-03-29T23:08:16.357 回答