将json post请求通过终端发送到rails应用程序

将json post请求通过终端发送到rails应用程序,json,ruby-on-rails-3,macos,curl,terminal,Json,Ruby On Rails 3,Macos,Curl,Terminal,我正在尝试使用OSX终端的curl命令在我的rails应用程序上创建一个用户。无论我如何格式化数据,应用程序都会返回一个响应,表示我的验证没有通过 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_confi

我正在尝试使用OSX终端的curl命令在我的rails应用程序上创建一个用户。无论我如何格式化数据,应用程序都会返回一个响应,表示我的验证没有通过

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..},但似乎没有任何效果。有什么想法吗?

首先,在您的命令末尾有一个“无关的”

试试这个

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

为什么不直接使用
$rails c
User.create:first\u name=>'John',:last\u name=>'Smith',…
?@coryward:这会破坏API的全部用途。这真的让我难住了。嗨,Bob可能发现了问题,但如果有帮助的话,我昨天发现了一篇帖子:这是关于XML的,但可能会有所帮助。致以最诚挚的问候。这是w正如它所示。我昨晚发现它需要-H Accept和Content-type。嗨,我可以调用这样的脚本:{“x”:“y”}。你能告诉我在curl终端中它会是什么样子吗?嗯,在我的例子中,我需要用引号括住目标URL。我能够删除-v(verbose)开关和-H“Accept:。。。“从上面看,它对我来说仍然很好。你认为你可以删除-X帖子,因为你使用了-d