【问题标题】:trying to POST with ruby mechanize尝试使用 ruby​​ mechanize 发布
【发布时间】:2011-04-05 02:13:54
【问题描述】:

我已经使用 firefox 插件 LiveHTTPheaders 捕获了登录 HTTP 标头。

我找到了以下 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

但是,这没有给我任何东西!我的帖子参数有问题吗?

【问题讨论】:

    标签: ruby mechanize


    【解决方案1】:

    post() 不需要阻塞。试试这个:

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

    编辑:为了准确而改变

    【讨论】:

    • 嗯,我之前没有看到帖子与块一起使用。查看文档/源代码似乎无效。怎么样:page = browser.post(...)。或者我通常这样做的方式是browser.post(...); browser.page.do_stuff
    • 哦,我还看到你的嵌套数组语法按照文档是可以的。我仍然认为哈希看起来更好;)
    • +1,get 支持块,但 post 不支持。你可以在这里看到它:github.com/tenderlove/mechanize/blob/master/lib/mechanize.rb。 @cam,你应该编辑你的答案,让它说正确的事情。
    猜你喜欢
    • 2013-07-02
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    • 2018-09-24
    相关资源
    最近更新 更多