带有cookie的Ruby POST请求?

时间:2013-11-07 22:56:04

标签: ruby cookies curl

我有一个Ruby脚本,使用以下命令发送带有cookie的POST请求:

curl.exe -H "Cookie: SomeCookie=#{cookie}" -d "SomaData=#{data}" http://somesite.com/post

我尝试使用Net :: HTTP将其重写为原生Ruby,但此代码不起作用:

Net::HTTP.post_form(URI('http://somesite.com/post'),
                {'SomeData' => '#{data}',
                'Cookie' => 'SomeCookie=#{cookie}'} )

如何解决这个问题?

我在Windows 7上使用MRI Ruby 1.9.3。

1 个答案:

答案 0 :(得分:1)

为什么不考虑使用Curb?它是libcurl的Ruby接口,并且具有比Net :: HTTP更接近cURL的接口。

这来自文档:

http = Curl.get("http://www.google.com/")
puts http.body_str

http = Curl.post("http://www.google.com/", {:foo => "bar"})
puts http.body_str

http = Curl.get("http://www.google.com/") do|http|
  http.headers['Cookie'] = 'foo=1;bar=2'
end
puts http.body_str