2010-08-28 13 views
11

He capturado los encabezados HTTP de inicio de sesión utilizando el complemento de Firefox LiveHTTPheaders.tratando de PUBLICAR con ruby ​​mecanize

He encontrado la siguiente url y variables.

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

Y aquí está el código que estoy corriendo:

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 

Sin embargo, esto me da nada! ¿Hay algún problema con mis parámetros de publicación?

Respuesta

19

post() no toma un bloque. Prueba esto:

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

edición: cambió la precisión

+0

no parecen funcionar. – KJW

+0

hmm, no había visto una publicación utilizada con un bloque anteriormente. no parece válido mirando los documentos/fuente. ¿Qué tal: 'page = browser.post (...)'. O la forma en que normalmente lo hago es 'browser.post (...); browser.page.do_stuff' – cam

+0

Ah, también vi que la sintaxis de matriz anidada está bien según la documentación. Todavía creo que el hash se ve mejor;) – cam