2010-08-28 10 views
11

Ho catturato le intestazioni HTTP di accesso utilizzando plugin firefox LiveHTTPheaders.tentativo di POST con ruby ​​mechanize

Ho trovato il seguente url e variabili.

POST /login 
email=myemail%40gmail.com&password=something&remember=1&loginSubmit=Login 

Ed ecco il codice sto facendo funzionare:

require 'rubygems' 
require 'mechanize' 


browser = Mechanize.new 
browser.post('http://www.mysite.com/login', 
[ 
["email","myemail%40gmail.com"], 
["password","something"], 
["remember","1"], 
["loginSubmit","Login"], 
["url"=>""] 
] 
) do |page| 
puts page.body 
end 

Tuttavia, questo mi dà niente! c'è qualcosa di sbagliato nei miei parametri di post?

risposta

19

post() non accetta un blocco. Prova questo:

page = browser.post('http://www.mysite.com/login', { 
    "email" => "myemail%40gmail.com", 
    "password" => "something", 
    "remember" => "1", 
    "loginSubmit" => "Login", 
    "url" => "" 
}) 

edit: cambiato per la precisione

+0

non sembra funzionare. – KJW

+0

hmm, non avevo mai visto post usato con un blocco prima. non sembra valido guardando la documentazione/fonte. che ne dici: 'page = browser.post (...)'. O il modo in cui lo faccio tipicamente è 'browser.post (...); browser.page.do_stuff' – cam

+0

Oh, ho anche visto che la sintassi di array nidificata è OK per la documentazione. Continuo a pensare che l'hash sia più bello però;) – cam

Problemi correlati