Rest-Client gem RoR, Ошибка получения неверной версии SSL - PullRequest
0 голосов
/ 22 сентября 2019

Я хочу создать приложение cli ruby, которое отправляет запросы на сервер Rails API.Я хотел использовать gem rest-client, чтобы сделать это.Каждый раз, когда я использую

RestClient.post 

, я получаю следующую ошибку

SSL_connect returned=1 errno=0 state=error: wrong version number (OpenSSL::SSL::SSLError)

Могу ли я что-нибудь сделать для запуска из консоли?Код довольно прост, я просто хотел протестировать эту функцию, так что не волнуйтесь, это не окончательно.

Я использую rails 6.0.3, ruby ​​2.6.3.

require "tty-prompt"
prompt = TTY::Prompt.new
require 'rest-client'



if prompt.yes? "Do you have an account ?"
  email = prompt.ask('What is your email?') do |q|
    q.validate(/\A\w+@\w+\.\w+\Z/, 'Invalid email address')
  end
  pass = prompt.mask('password:')
  puts email
  puts pass
  RestClient.post "https://localhost:3000/auth/sign_in",  "email: #{email},password:#{pass}"
  puts response.code
else
  RestClient.post "https://localhost:3000/auth",  "email: #{email},password:#{pass}"

end

Я бы хотел, чтобы приложение cli отправляло запрос в API, вот и все, rest-client не хочет со мной сотрудничать.Спасибо: D

1 Ответ

1 голос
/ 22 сентября 2019

Скорее всего, порт 3000, к которому вы обращаетесь, имеет значение http://, а не https://.Доступ к обычному порту http:// с https:// приведет к тому, что клиент неверно интерпретирует сообщение об ошибке HTTP сервера (поскольку начало рукопожатия TLS, отправленное клиентом, было неверным HTTP) как HTTPS, что может привести к странным ошибкам, например недопустимымдлина пакета или неправильный номер версии.

...