多级参数休息发布

时间:2011-08-01 10:26:35

标签: ruby ruby-on-rails-3 rest

当我使用net / http库时,如何将多级参数传递给POST?

有效的例子:

require "net/http"

http = Net::HTTP.new("localhost", 3000)
request = Net::HTTP::Post.new("/external/rd")
request.set_form_data({:name => 'device_rb'})
response = http.request(request)
puts response.body

但是常见的轨道表示法是:

"device" => {:name => 'device_rb'}

我不知道如何将这个嵌入参数放到set_form_data方法中。有什么帮助吗?

此致

1 个答案:

答案 0 :(得分:1)

如果您要发布表单数据,您的数据将以x-www-form-urlencoded格式进行编码。这或多或少是一种简单的键/值格式,没有嵌套结构。

如果要为传递给服务器的数据进行嵌套,则必须使用允许它的格式,例如JSON或XML。但是,您无法使用set_form_data为这些格式设置有效负载。

您宁愿使用request.body = payload进行设置。另请参阅此simple example以发布JSON有效内容。