解析json POST主体



使用以下模块定义时

defmodule Router.Folder do
use Maru.Router
namespace :folder do
route_param :id do
get do
IO.puts "ID: " <> params[:id]
json(conn, %{ user: params[:id], msg: "Hello Elixir World!" })
end
params do
requires :name, type: String
end
post do
IO.puts params[:name]
IO.puts params[:token]
IO.puts params[:id]
IO.puts "Posting"
json(conn, %{ msg: "Hello Elixir World!" })
#conn |> text("Hello")
end
end  # end route_param :id
end  # end namespace :folder
end  # end defmodule Router.Folder
defmodule FolderService.API do
use Maru.Router
before do
plug Plug.Logger
plug Plug.Parsers,
pass: ["*/*"],
json_decoder: Poison,
parsers: [:urlencoded, :json]
end
mount Router.Folder
end

我收到这个错误

**(退出)引发异常:
**(Maru.Exceptions.InvalidFormat)分析参数错误:名称
(文件夹)lib/folder.ex:29:FolderService.API.route/2中的匿名-fn/1FolderService.API。error_handler/1
(文件夹)lib/folder.ex:29:FolderService.API.call/2中的匿名-fn/1
自动条码识别器

运行此curl命令时:

curl -X POST -H "Content-Type: applicaton/json" -d '{"name": "foobar"}' 'http://localhost:9000/folder/1233'

代码运行良好,但如果我卷曲

curl -X POST -d "name=foobar" 'http://localhost:9000/folder/1233'

模块的一切看起来都很好。问题是,当您尝试使用curl发送POST请求时,您需要在使用=的地方使用colons

这应该有效:curl -X POST -d "name:foobar" 'http://localhost:9000/folder/1233'

发送POST数据的示例。

如何使用Curl从终端/命令行POST JSON数据以测试Spring REST?

相关内容

  • 没有找到相关文章

最新更新