在Ruby中进行表单POST

时间:2013-10-10 00:50:11

标签: ruby

我想在Ruby中使用Net :: HTTP发布帖子请求。该网站如下:

 <form method="post" action="login.php">
    <tr><td><input type="text" name="id" /></td></tr>
    <tr><td><input type="password" name="password" /></td>
    <td> <input type="submit" name = "submit" value="Login" /> </td></tr>
 </form>

遵循Ruby中Net :: HTTP的示例,ruby脚本如下:

 uri = URI('http://www.example.com/login.php')
 req = Net::HTTP::Post.new(uri)
 req.set_form_data('id' => 'myid', 'password' => 'mypassword', 'submit' => 'Login') 
 res = Net::HTTP.start(uri.hostname, uri.port) do |http|
     http.request(req)
 end

我认为res应该是登录后的页面,但登录不成功。有什么问题?

1 个答案:

答案 0 :(得分:1)

“登录不成功”是什么意思?响应是否告诉您“密码无效”或其他什么?或者是您认为应该是的响应,但是您希望后续请求“登录”,但事实并非如此?在后一种情况下,您是否将cookie带到下一个请求中?也许您应该考虑使用Mechanize