2010-08-28 68 views
11

我已经使用firefox插件LiveHTTPheaders捕获了登录HTTP头。试图用红宝石机械化POST POST

我找到了以下的url和变量。

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

而这里的我运行代码:

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 

然而,这给了我什么!我的发布参数有问题吗?

回答

19

post()不占用块。试试这个:

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

编辑:改变准确性

+0

似乎并没有工作。 – KJW 2010-08-28 03:39:32

+0

嗯,我以前没有看过帖子用过。它看起来没有看到有效的文档/来源。怎么样:'page = browser.post(...)'。或者我通常的做法是'browser.post(...); browser.page.do_stuff' – cam 2010-08-28 03:53:06

+0

哦,我也看到你的嵌套数组语法对每个文档都是OK的。我仍然认为哈希看起来更好看); – cam 2010-08-28 03:54:17