首页 > 解决方案 > 使用 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,我怎么能在不登录的情况下从商店中检索数据?

标签: coldfusionhttp-headersshopify

解决方案


正如@RRK 指出的那样,

这很可能是 TLS1.2 问题,这是 CF9 的一个已知问题。您可以尝试将其添加-Dhttps.protocols=TLSv1.2到 CF 管理员中的 JVM 设置中吗?

看起来确实是 CF9 问题,因为在将其升级到 CF 2016 Patch 6 以及 Java 8 x64 V 172 后,它可以正常检索数据。


推荐阅读