【问题标题】:Crystal-lang httpget basic_authCrystal-lang httpget basic_auth
【发布时间】:2016-08-19 22:45:07
【问题描述】:

我正在用 Ruby 编写一些代码...但我无法弄清楚基本身份验证如何与 Crystal-lang 一起工作。

在 ruby​​ 中,我必须始终使用 request.basic_auth,但这在 Crystal lang 中可能不起作用。
我在做什么红宝石?有人可以用 Crystal-lang 写那行 request.basic_auth 吗?

    request = HTTP::Client.get "http://127.0.0.1:#{ports[coinName]}/"
    request.basic_auth username([coinName], password[coinName])
    json = JSON.parse(request.body

错误

in ./src/coinHashRate.cr:29: undefined method 'basic_auth' for HTTP::Client::Response

    request.basic_auth username[coinName], password[coinName]
            ^~~~~~~~~~

【问题讨论】:

    标签: crystal-lang


    【解决方案1】:

    你需要做的:

    require "http/client"
    
    client = HTTP::Client.new "127.0.0.1", ports[coinName]
    client.basic_auth(username[coinName], password[coinName])
    client.get "/"
    

    您使用基本身份验证配置客户端,而不是请求或响应。​​

    【讨论】:

      【解决方案2】:

      它应该和 ruby​​ 一样工作。运行时是否遇到任何错误?

      Here is a link to the original source of the function for clarification

      使用新函数代替get。

      request = HTTP::Client.new "http://127.0.0.1/", ports[coinName]
      request.basic_auth username[coinName], password[coinName]
      response = request.get "/"
      json = JSON.parse response.body
      

      【讨论】:

      • 只是为了跟进,您能否为未来有此问题的用户选择答案?
      • 我还没有让它工作。当我弄清楚我做错了什么时,我会选择一个答案或发布我自己的答案。它现在似乎无法解析 json。
      • 这是可以理解的,对不起。它现在给出了什么错误?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多