Crystal-lang httpget basic_auth
Я пишу некоторый код на Ruby... Но я не могу понять, как базовая аутентификация работает с Crystal-lang.
В ruby мне всегда приходилось использовать request.basic_auth, но это, вероятно, не работает в Crystal lang.
Что я делаю рубин? Может ли кто-нибудь написать эту строку request.basic_auth в Crystal-lang?
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]
^~~~~~~~~~
2 ответа
Решение
Вам нужно сделать:
require "http/client"
client = HTTP::Client.new "127.0.0.1", ports[coinName]
client.basic_auth(username[coinName], password[coinName])
client.get "/"
Вы настраиваете клиента с базовой аутентификацией, а не запросом или ответом.
Он должен работать так же, как рубин. Вы получаете какие-либо ошибки при запуске?
Вот ссылка на первоисточник функции для уточнения
Используя новую функцию вместо 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