代码之家  ›  专栏  ›  技术社区  ›  swinn

使用cfhttp检索客户数据-I/O异常:对等端未经身份验证

  •  3
  • swinn  · 技术社区  · 6 年前

    我已经建立了一个私人应用程序,可以读取客户详细信息和客户群。

    我的冷融合:

    <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 并正确显示数据。但是,当我注销时,URL会重定向到 https://rhein-essentials.myshopify.com/admin/auth/login . 使用api密钥和密码是不是意味着我可以远程访问数据,而无需登录?

    我做错了什么?如果不是通过ColdFusion,我怎么能在没有登录的情况下从存储中检索数据?

    1 回复  |  直到 6 年前
        1
  •  1
  •   swinn    6 年前

    正如@rrk指出的,

    最有可能的是TLS1.2问题,这是CF9的已知问题。你能试着加这个吗 -Dhttps.protocols=TLSv1.2 到CF管理员中的JVM设置?

    这似乎是一个真正的CF9问题,因为升级到CF 2016补丁6,连同Java 8 X64 V 172,它检索数据罚款。