当我使用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方法中。有什么帮助吗?
此致
答案 0 :(得分:1)
如果您要发布表单数据,您的数据将以x-www-form-urlencoded格式进行编码。这或多或少是一种简单的键/值格式,没有嵌套结构。
如果要为传递给服务器的数据进行嵌套,则必须使用允许它的格式,例如JSON或XML。但是,您无法使用set_form_data
为这些格式设置有效负载。
您宁愿使用request.body = payload
进行设置。另请参阅此simple example以发布JSON有效内容。