Rest 如何将curl转换为elixir httpoison

Rest 如何将curl转换为elixir httpoison,rest,curl,elixir,httpoison,Rest,Curl,Elixir,Httpoison,我有一个api中的示例curl命令: curl -sd '{"inputs":[{"addresses": ["add42af7dd58b27e1e6ca5c4fdc01214b52d382f"]}],"outputs":[{"addresses": ["884bae20ee442a1d53a1d44b1067af42f896e541"], "value": 4200000000000000}]}' https://api.blockcypher.com/v1/eth/main/txs/new?

我有一个api中的示例curl命令:

curl -sd '{"inputs":[{"addresses": ["add42af7dd58b27e1e6ca5c4fdc01214b52d382f"]}],"outputs":[{"addresses": ["884bae20ee442a1d53a1d44b1067af42f896e541"], "value": 4200000000000000}]}' https://api.blockcypher.com/v1/eth/main/txs/new?token=YOURTOKEN
我不知道如何将其转化为HTTPoison for Elixir。我已经试了好几个小时了。我甚至不能开始提及我经历过的所有迭代,但我现在的处境是:

Connect.post( "https://api.blockcypher.com/v1/eth/main/txs/new?token=#{@token}",
              "",
              [
                { "inputs",  "{addresses, #{address_from}}"},
                {  "outputs", "[{addresses, #{address_to}}, {value, #{eth_amount}}]"}
              ]
            )
与我之前尝试过的大多数方法不同,这实际上会到达他们的服务器并给出响应:

"{\"error\": \"Couldn't deserialize request: EOF\"}"
%{"error" => "Couldn't deserialize request: EOF"}
** (FunctionClauseError) no function clause matching in Base.encode16/2
         (elixir) lib/base.ex:175: Base.encode16(nil, [])
    (blockcypher) lib/blockcypher/handler.ex:55: Blockcypher.Handler.post_transa
ction_new/4
iex(46)>

你能帮我吗?我尝试将数据放在正文部分而不是标题中,但没有成功。

数据应该是HTTPoison.post/2的第二个参数,并且应该编码为JSON。您的数据格式也不正确

这应该起作用:

Connect.post(
  "https://api.blockcypher.com/v1/eth/main/txs/new?token=#{@token}",
  "",
  Poison.encode!(
    %{"inputs" => [%{"addresses" => [address_from]}],
      "outputs" => [%{"addresses" => [address_to],
                      "value" => eth_amount}]})
)

谢谢狗伯特,不幸的是那没用。我在位置0(Poison)lib/Poison/parser处收到一个错误,提示输入意外结束。
**(Poison.SyntaxError)。例如:55:Poison.parser.parse/2(毒药)库/毒药。例:83:毒药。解码/2(httpoison)lib/httpoison/base.ex:471:httpoison.base.response/6(blockcypher)lib/blockcypher/handler.ex:47:blockcypher.handler.post_transaction_new/4
@Dogbert在原始请求中,
输入
输出[地址+值]
都是数组。我相信将地图包装到
[]
中应该可以让它工作。@mudasobwa谢谢!我已经用
Poison.decode解码了原始字符串并复制粘贴它。希望现在没有错误@你能试试我的新代码吗?行了!只需稍加修改即可删除第三行
谢谢各位,你们是向导!