【发布时间】:2016-04-28 18:03:39
【问题描述】:
我得到了以下指示,可以从 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= 字段中同时拥有这两个值,以便正确读取。
【问题讨论】:
-
连接失败通常意味着您根本没有建立连接。如果它与所需的标题或内容问题有关,我会期待不同的消息。检查是否:A)您的证书已安装在密钥库中 - Java 可以使用 SSL/TLS 与相关站点握手 B)服务器正确解析 IP 地址。
-
标记之前的 cfhttp 获取到相同的地址以提取 access_token JSON 数据能够毫无问题地连接。只有当我点击相同的 url 但不同的方法“请求”并且我应该在标题中传递上一个调用中的信息时,我才会得到无连接失败。抱歉,我不确定我是否了解 JAVA,因为我在冷融合中这样做。请解释一下,我很乐意跟进。感谢您的回复。
-
我对我的问题添加了一个编辑,这可能有助于缩小正在发生的事情。
-
网络服务有多特别?说明显示标记类型
Bearer的大写字母“B”,但您的示例为标记类型bearer传递小写字母“b”。 -
我把它吐回了它的自我。在这种情况下,对 web 服务的第一次调用会获取不记名术语,我只是将其保存到变量中。所以我一直这样。你认为 deserializeJSON 会改变这种情况吗?
标签: json coldfusion cfhttp cfhttpparam