coldfusion - 使用 cfhttp 检索客户数据 - I/O 异常:对等体未通过身份验证
问题描述
我已经设置了一个私有应用程序,可以读取客户详细信息和客户组。
我的冷融合:
<cfhttp
url="https://[api-key]:[password]@rhein-essentials.myshopify.com/admin/customers.json"
method="get" result="httpResp" timeout="120">
<cfhttpparam type="header" name="Content-Type" value="application/json" />
</cfhttp>
<cfdump var="#httpResp#" />
其中 [api-key] 和 [password] 是从我创建私有应用程序时生成的数据中复制的。响应对象:
struct
Charset [empty string]
ErrorDetail I/O Exception: peer not authenticated
Filecontent Connection Failure
Header [empty string]
Mimetype Unable to determine MIME type of file.
Responseheader struct[empty]
Statuscode Connection Failure. Status code unavailable.
Text YES
如您所见,它返回错误“连接失败”。详细错误添加了“I/O 异常:对等体未通过身份验证”。起初我倾向于认为这是我的 ColdFusion 代码的问题。但我随后尝试使用相同的 url 并将其直接插入我的浏览器。当我登录 Shopify 站点时,该 URL 会重定向到https://rhein-essentials.myshopify.com/admin/customers.json并正确显示数据。但是,当我注销时,网址会重定向到https://rhein-essentials.myshopify.com/admin/auth/login。使用api密钥和密码的目的不是让我无需登录即可远程访问数据吗?
我做错了什么,如果不通过 ColdFusion,我怎么能在不登录的情况下从商店中检索数据?
解决方案
正如@RRK 指出的那样,
这很可能是 TLS1.2 问题,这是 CF9 的一个已知问题。您可以尝试将其添加
-Dhttps.protocols=TLSv1.2
到 CF 管理员中的 JVM 设置中吗?
看起来确实是 CF9 问题,因为在将其升级到 CF 2016 Patch 6 以及 Java 8 x64 V 172 后,它可以正常检索数据。
推荐阅读
- python - 如何更新 tkinter 中的小部件?
- rust - 如何为不采用生命周期参数的特征内的类型实现命名生命周期?
- r - zoo::rollapply 没有给出滚动相关的整个运行
- python - 递归 - 具有不同计数约束的两个字母的所有组合列表
- node.js - 如何在 MongoDB 中以 Catgepory > Sub Catgeory > Product 使用 nodejs 获取数据
- node.js - 更新模式而不删除 mongodb 中的集合
- python - 绘制多个数据框不起作用
- android - 有没有办法确定处于活动状态的 workRequest 的标签?
- firebase - firebase 云功能对数据库负载有影响吗?
- java - 使用 GLFW (LWJGL) 创建窗口的问题