0

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

4

1 回答 1

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
于 2013-11-08T02:54:24.520 回答