Ruby 'net/https'. Программная авторизация на сайте методом post -> переход по ссылке -> скачать файл!?

Доброе время суток, Господа!
Подскажите пожалуйста, мне нужно программно авторизироваться на сайте эквайер, для того чтобы скачать файл в формате CSV

Авторизацию проходит успешно, так же выдает ответы сервера если например неправильно ввели пароль - Code = {"status":"WRONG_PASS"}

Теперь необходима проверка на то что мы оказались на странице /admin.html
Если - true - скачать файл:

https://service.rro.ukrcard.com.ua/serv/rro/getRro...

require 'uri'
require 'net/https'
require "json"

uri = URI("https://service.rro.ukrcard.com.ua/serv/auth/login.data")
https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true

response, data = https.post(uri.path, nil)
cookie = response.response['set-cookie']

headers = {
  'Cookie' => cookie,
  'Referer' => 'myRuby',
  'Content-Type' => 'application/x-www-form-urlencoded'
}

data = ('login=' + login + '&password=' + password)

response, data = https.post(uri.path, data, headers)

response.each {|key, val| puts key + ' = ' + val}

puts '-------------------------------------------------------------------------------------------------------------'
puts 'Code = ' + response.body
puts '-----------------------------------------'
puts 'Message = ' + response.message
puts '-----------------------------------------'
puts "Cookie \n" + cookie
puts response.class.name

puts "--------------------------------------------------------------------Auth complete----------------------------"


    https.open_timeout = 10
    https.read_timeout = 10
	
    uri_new = URI.parse("https://service.rro.ukrcard.com.ua/serv/rro/getRroData.data?format=csv")
    p uri_new.scheme        # => "https"
	p uri_new.host          # => "service.rro.ukrcard.com.ua"
	p uri_new.port          # => 443
	p uri_new.request_uri   # => "/serv/rro/getRroData.data?format=csv"
	p uri_new.path          # => "/serv/rro/getRroData.data"
	p uri_new.query         # => "format=csv"
	p uri_new.to_s


Заранее благодарен!
  • Вопрос задан
  • 2697 просмотров
Пригласить эксперта
Ответы на вопрос 1
MpaK999
@MpaK999
Буду!
Ну теперь перейдите на admin ссылку приложив куки.

Кстати docs.seattlerb.org/mechanize облегчил бы вам работу и код.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы