我已经获得了以下指示,可以从Web服务中提取JSON数据列表。
GET /criminal_api/1.0/service/requests
HTTP Header: Authorization: Bearer 6EDC52118E164AE659EA2C772F3B9804
标题Bearer 6EDC52118E164AE659EA2C772F3B9804
中的以下值是动态的,将使用以下content
变量
<cfset content = deserializeJSON( {
"access_token": "84F224956C6AB5287038C0209EBAC5AB",
"token_type": "bearer",
"refresh_token": "E48BB9C164FE2125D3BE2CD602E4A692",
"expires_in": 7199,
"scope": "read write"
})>
所以我尝试了以下内容:
<cfhttp method="get" url="https://test.mywebsite.com/criminal_api//1.0/service/requests" result="orderList">
<cfhttpparam type="HEADER" name="Authorization" value="#content.token_type# #content.access_token#">
</cfhttp>
但是当我检查filecontent而不是获取JSON列表时,我得到:Connection Failure
我感觉这是我设置标题值的方式我不知道我做错了什么。
修改 当我在令牌类型和访问令牌之间添加“:”时,我收到了一个新错误:
struct
error -1
error_description Invalid access token: : 82D773278FB69CFBCFB4CB8CEF8AC03D
显然它认为“:”是访问令牌的一部分,因此它正在连接我只是不确定如何在value =字段中同时拥有这两个值,以便正确读取它。
答案 0 :(得分:1)
你试过了吗?
<cfhttp method="get" url="https://test.mywebsite.com/criminal_api//1.0/service/requests" result="orderList" username="#content.token_type#" password="#content.access_token#">
这将产生“基本承载:6EDC52118E164AE659EA2C772F3B9804”的授权标题
手动,那将是:
<cfhttp method="get" url="https://test.mywebsite.com/criminal_api//1.0/service/requests" result="orderList">
<cfhttpparam type="HEADER" name="Authorization" value="Basic #content.token_type#:#content.access_token#">
还有十六进制值包含的问题。看看Getting Basic Authentication to work with ColdFusion - 也许这更能反映出你的情况。