2016-08-03 30 views
0

我正在尝试使用POST和嵌套参数进行Http基本身份验证。 虽然外部参数,做工精细(class.name - 的ActionController ::参数)嵌套的参数字符串(class.name - 字符串) 这里是我的代码 - >Ruby:http POST带嵌套参数不起作用

require 'net/http' 

uri = URI('http://example.com/bulb/') 
req = Net::HTTP::Post.new(uri) 
req.basic_auth '[email protected]', 'mypassword' 

req.set_form_data('first_params' => 'a', 'seconnd_params'=>'b', 'netsed_params'=>{'first_netsed'=>'c', 'second_nested'=>'d'}, 'commit'=>'Create Bulb', 'action'=>'create', 'controller'=>'bulb') 

res = Net::HTTP.start(uri.hostname, uri.port) do |http| 
    http.request(req) 
end 

case res 
when Net::HTTPSuccess, Net::HTTPRedirection 
    # OK 
else 
    #failed 
end 

可以使用哪些其他库使嵌套参数无需手动转换即可工作。我看到set_form_data不嵌套哈希工作

回答

0

试试这个

req.set_form_data('first_params' => 'a', 'second_params'=>'b', 'nested_params[first_nested]' => 'c', 'nested_params[second_nested]' => 'd'}, 'commit'=>'Create Bulb', 'action'=>'create', 'controller'=>'bulb') 
+0

谢谢!这工作完美! – KavitaC