2011-02-14 73 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