post 请求正文未正确发送
Body of post request not sending correctly
我正在写一个 POST 请求,它应该使用长生不老药将一些信息发送到 REST api,这些信息应该可以在 conn.body_params 中访问,但它看起来是空的。
我的代码如下:
conn2 = conn(:post, gameID<>"/guesses", Poison.encode!(%{guess: "p"}))
|> GameRouter.call()
assert conn2.status == 201
我的插件也有如下配置:
plug Plug.Parsers, parsers: [:urlencoded, :multipart, :json], pass: ["*/*"], json_decoder: Poison
真正发送POST请求中的信息应该怎么写?
您需要添加 content-type: application/json
header 以便 Plug.Parsers
知道使用 json 解析器。
conn2 =
conn(:post, gameID <> "/guesses", Poison.encode!(%{guess: "p"}))
|> put_req_header("content-type", "application/json")
|> GameRouter.call()
pass: ["*/*"]
告诉 Plug.Parsers
忽略它不知道的所有内容类型。如果删除它,您将得到 Plug.Parsers.UnsupportedMediaTypeError
,这将帮助您确定问题。
我正在写一个 POST 请求,它应该使用长生不老药将一些信息发送到 REST api,这些信息应该可以在 conn.body_params 中访问,但它看起来是空的。
我的代码如下:
conn2 = conn(:post, gameID<>"/guesses", Poison.encode!(%{guess: "p"}))
|> GameRouter.call()
assert conn2.status == 201
我的插件也有如下配置:
plug Plug.Parsers, parsers: [:urlencoded, :multipart, :json], pass: ["*/*"], json_decoder: Poison
真正发送POST请求中的信息应该怎么写?
您需要添加 content-type: application/json
header 以便 Plug.Parsers
知道使用 json 解析器。
conn2 =
conn(:post, gameID <> "/guesses", Poison.encode!(%{guess: "p"}))
|> put_req_header("content-type", "application/json")
|> GameRouter.call()
pass: ["*/*"]
告诉 Plug.Parsers
忽略它不知道的所有内容类型。如果删除它,您将得到 Plug.Parsers.UnsupportedMediaTypeError
,这将帮助您确定问题。