2011-02-14 70 views
4

如何使用curl在带有嵌套属性的表单上使用application/x-www-form-urlencoded而不是application/xml创建一个http文章?使用curl模拟一个带有嵌套资源数组的表单文章

随着XML它工作得很好:

curl -i -X 'POST' -H 'Content-Type: application/xml' http://localhost:3000 -d '<user><name>John Doe</name><emails><email><address>[email protected]</address></email><email><address>[email protected]</address></email></emails></user>' 

而结果:

Parameters: {"action"=>"profile", "controller"=>"users", "user"=>{"name"=>"John Doe", "emails"=>{"email"=>[{"address"=>"[email protected]"}, {"address"=>"[email protected]"}]}}} 

但是,我想完成同样的结果,而不XML。

我想是这样的:

curl -i -X POST -d 'user[name]=John Doe&user[emails][email][address][email protected]&user[emails][email][address][email protected]' http://localhost:3000/ 

但它并没有奏效:

Parameters: {"user"=>{"name"=>"John Doe", "emails"=>{"email"=>{"address"=>"[email protected]"}}}} 

回答

8

,你会请尝试以下方法:

curl -i -X POST -d 'user[name]=John Doe&user[emails][][email][address][email protected]&user[emails][][email][address][email protected]' http://localhost:3000/ 

注意[]背后[emails]

+0

几乎:`参数:{“user”=> {“name”=>“John Doe”,“emails”=> [{“email”=> {“address”=>“[email protected]”}} ]}}`数组部分起作用,但只考虑最后一封电子邮件。 – 2011-02-14 23:06:28