我正在尝试使用HTTPoison处理来自API调用的响应
在我的应用程序上下文中我有
def add_to_cart(data, user) do
case HTTPoison.post!(
"https://api.moltin.com/v2/carts/" <> user <>
"/items", data,
[{"Authorization",
"Bearer #{Agent.get(:token, fn state -> state end)}"},
{"Content-Type", "application/json"}] do
{:ok, %HTTPoison.Response{status_code: 201, body: body}} ->
case Poison.decode(body) do
{:ok, decoded} -> decoded
{:error, error} -> {:error, error}
end
{:ok, %HTTPoison.Response{status_code: 404}} ->
IO.puts "Not found :("
{:error, %HTTPoison.Error{reason: reason}} ->
IO.inspect reason
end
end
Run Code Online (Sandbox Code Playgroud)
我返回的错误是:
CaseClauseError at POST /order
no case clause matching: %HTTPoison.Response{response content}
Run Code Online (Sandbox Code Playgroud)
我在我的代码中的其他地方使用了这种模式并且匹配正常但是当我把它放在这里时,它似乎不起作用.
我确信这不是足够的信息可供使用,但我不确定此时还有什么可放.任何指导将不胜感激.
elixir ×1