Для встроенных систем:
Необычное поведение, о котором сообщают клиенты в поле, но который мы не можем воспроизвести.
После этого, ошибки, которые оказываются из-за странного ряда или согласия событий. Они, по крайней мере, восстанавливаемы, но очевидно им может потребоваться много времени - и большое экспериментирование - для создания происходит.
Взято из DZone Snippets
http = Net::HTTP.new('profil.wp.pl', 443)
http.use_ssl = true
path = '/login.html'
# GET request -> so the host can set his cookies
resp, data = http.get(path, nil)
cookie = resp.response['set-cookie'].split('; ')[0]
# POST request -> logging in
data = 'serwis=wp.pl&url=profil.html&tryLogin=1&countTest=1&logowaniessl=1&login_username=blah&login_password=blah'
headers = {
'Cookie' => cookie,
'Referer' => 'http://profil.wp.pl/login.html',
'Content-Type' => 'application/x-www-form-urlencoded'
}
resp, data = http.post(path, data, headers)
# Output on the screen -> we should get either a 302 redirect (after a successful login) or an error page
puts 'Code = ' + resp.code
puts 'Message = ' + resp.message
resp.each {|key, val| puts key + ' = ' + val}
puts data
update
#To save the cookies, you can use PStore
cookies = PStore.new("cookies.pstore")
# Save the cookie
cookies.transaction do
cookies[:some_identifier] = cookie
end
# Retrieve the cookie back
cookies.transaction do
cookie = cookies[:some_identifier]
end
Я использовал Curb и Mechanize для аналогичного проекта. Просто включите поддержку файлов cookie и сохраните файлы cookie во временном хранилище файлов cookie ... Если вы используете net / http или пакеты без встроенной поддержки файлов cookie, вам нужно будет написать собственную обработку файлов cookie.
Вы можете отправлять принимающие куки, используя заголовки.
Вы можете сохранить заголовок в любой среде сохранения. Будь то база данных или файлы.