3

我得到了以下指示,可以从 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>

但是当我检查文件内容而不是获取 JSON 列表时,我得到:Connection Failure

我有一种感觉,这就是我设置标题值的方式,我只是不确定自己做错了什么。

编辑: 当我在令牌类型和访问令牌之间添加一个“:”时,我收到了一个新错误:

struct
error   -1
error_description   Invalid access token: : 82D773278FB69CFBCFB4CB8CEF8AC03D

显然它认为“:”是访问令牌的一部分,所以它正在连接我只是不确定如何在 value= 字段中同时拥有这两个值,以便正确读取。

4

1 回答 1

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 - 也许这更能反映您的情况。

于 2016-04-29T13:27:04.080 回答