2

我正在用 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]
            ^~~~~~~~~~
4

2 回答 2

9

你需要做:

require "http/client"

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

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

于 2016-08-20T14:05:57.597 回答
0

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

这是该功能的原始来源的链接,以进行澄清

使用新函数而不是 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
于 2016-08-19T23:04:50.763 回答