2016-08-19 3 views
1

Я пишу код в Ruby ... Но я не могу понять, как работает базовая аутентификация с Crystal-lang.Crystal-lang httpget basic_auth

В рубине мне приходилось всегда использовать 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] 
      ^~~~~~~~~~ 

ответ

7

Вам нужно сделать:

require "http/client" 

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

Вы настраиваете клиент с базовой аутентификацией, а не по просьбе, ни ответа.

0

Он должен работать так же, как рубин. Получаете ли вы какие-либо ошибки при запуске?

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 
+0

Да. Обновлен мой вопрос. См. Журнал ошибок – Romano

+0

Проверьте, работает ли обновленный код? –

+0

Просто следите, не могли бы вы выбрать ответ для будущих пользователей с этим вопросом? –