require 'net/http' require 'net/https' 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'] # 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
You need to create an account or log in to post comments to this site.
So here's my code snippet in full - and get2/post2 is interchangable with get/post, the difference is that the 2 is safer, it won't toss any Net:: Errors.
Also notice that I URL encoded the username and password.
If you curious, I'm scraping my own API for DreamHost's Control Panel, so I don't have to labourously open my web browser every time I need to add or change something. (Yeah, I'm that lazy.)
Anyway, its unfinished, I'll be refactoring the code next - the Panel.login method was just for testing.