curl json post request via via rails app


109

私は自分のRailsアプリで、os xターミナルからcurlコマンドを使用してユーザーを作成しようとしています。データをどのようにフォーマットしても、アプリは私の検証以外で合格した応答を返します。

curl http://localhost:3000/api/1/users.json -i -X POST -d {"user":{"first_name":"firstname","last_name":"lastname","email":"email@email.com","password":"app123","password_confirmation":"app123"}}"

私はすべてのバリエーションを試しました。[]ブラケットを使用してみましたが、user = {data ..}を試しましたが、何も機能しないようです。何か案は?


なぜ使用$ rails cしないのUser.create :first_name => 'John', :last_name => 'Smith', ...ですか?
coreyward 2011

23
@coryward:これは、APIの目的全体を無効にします。
Wukerplank 2011

それは本当に私を困らせました
クリスサン

こんにちは、ボブはおそらく問題を見つけたかもしれませんが、それが役立つ可能性がある場合は、私が昨日見つけた投稿です:squarism.com/2011/04/01/how-to-write-a-ruby-rails-3-rest-api XMLについてですが、役立つかもしれません。宜しくお願いします。
計画

回答:


227

まず、コマンドの最後に「無関係」があります。

これを試して

curl -v \
  -H "Accept: application/json" \
  -H "Content-type: application/json" \
  -X POST \
  -d ' {"user":{"first_name":"firstname","last_name":"lastname","email":"email@email.com","password":"app123","password_confirmation":"app123"}}' \
  http://localhost:3000/api/1/users

それだけでした。昨夜、-H AcceptとContent-typeが必要だとわかりました。
クリスサン

こんにちは、abc.com / ?a = 4 &b = {"x": "y"}のようなスクリプトを呼び出しています。カールターミナルでの外観を教えていただけますか?
user739711 2012年

私の場合、うーん、ターゲットURLを引用符で囲む必要がありました
Jonathan Lin

1
上記から-v(詳細)スイッチと-H "Accept:..."を削除することができましたが、それでもまだ問題はありません。
ダン

2
-dを使用しているため、-X POSTも削除できると思います
Luke W
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.