Всем привет. Кто-нибудь авторизовывался через Net::HTTP?
пытаюсь авторизоваться на сайте:
uri = URI("<адрес к странице авторизации>")
http = Net::
HTTP.new(
uri.host, uri.port)
response = http.get(uri.path, nil)
noko = Nokogiri::HTML(response.body)
elem = noko.at_xpath("//input[@name = 'authenticity_token']").values
login = '<login>'
password = '<pass>'
data = ('&login=' + login + '&password=' + password + "&utf8=✓" + "&#{elem[1]}=" + elem[2].to_s + "&back_url=<адрес сервера>" + "&login=Вход")
response =
http.post(uri.path, "#{data}")
&#{elem[1]}=" + elem[2].to_s - это консрукция возвращает
&authenticity_token=ViU1/MBY6uk/1BbMA6lV+R1xQEx+4UlblUhU3G3FXvLvTsVvq+AzfEn1GcVbvAxZNe/ngMF5ZV1/hrQcqIZ0SQ==
столкнулся со следующей проблемой:
при передаче запроса
http.post(uri.path, "#{data}")
"authenticity_token"=>"ViU1/MBY6uk/1BbMA6lV R1xQEx 4UlblUhU3G3FXvLvTsVvq AzfEn1GcVbvAxZNe/ngMF5ZV1/hrQcqIZ0SQ==
"+" меняются на " ", соответственно возвращается ошибка: 'Can't verify CSRF token authenticity'
как правильно передать строку? или может я вообще неправильно пытаюсь авторизоваться?