我有一个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。
答案 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