Ruby Mechanize的帖子不起作用,但是Node.JS请求发布了

时间:2014-12-11 18:48:42

标签: ruby node.js mechanize http-post

我一直试图为一个网站制作一个互动聊天机器人,部分灵感来自已经开始制作网站的朋友。他们正在node.js制作他们的作品,但我想用红宝石制作他的,因为我对它更加满意。然而,经过几个小时的调试和尝试新事物,我开始认为机械化有问题。

在node.js中,我安装了request,因为这是我的朋友用来抓取他们的页面的。由于ruby根本不工作,我决定在node.js中创建它,然后将其转移。由于网站所有者希望机器人是私有的,我不会进入具体细节,但这就是我所拥有的。

的Node.js

request.post({
    headers: {
        "User-Agent": "bot",
        "Host": "example.com",
        "Referer": "http://example.com/",
        "X-CSRF-Token": token
    },
    url: "http://example.com/post",
    body: "channel=" + channel + "&action=post&data=" + message
}});

这是Ruby中的等效代码:

@agent.post("http://example.com/post", {
  "channel" => @channel,
  "action" => "post",
  "data" => message
},
{
  "User-Agent" => "bot",
  "Host" => "example.com",
  "X-CSRF-Token" => @csrf,
  "Referer" => "http://example.com/"
})

据我所知,这两个帖子都是相同的,但网站没有响应ruby脚本。发送数据唯一需要的是会话cookie和特殊令牌,但检查机械化的cookie表明它就在那里。是不是以某种方式在帖子中发送?我真的很困惑,并且花了很长时间试图让它发挥作用。

编辑:

我试图从正确的响应中模仿cookie,尽管Fiddler表示他们发送相同的数据但它并没有解析ruby版本。

0 个答案:

没有答案