首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >凤凰混合任务的HTTPoison ArgumentError

凤凰混合任务的HTTPoison ArgumentError
EN

Stack Overflow用户
提问于 2019-05-02 05:50:12
回答 2查看 548关注 0票数 2

我在菲尼克斯应用程序上有混合任务mix fetch.btc (lib/ mix /tasks/mix ch.btc.ex):

代码语言:javascript
复制
defmodule Mix.Tasks.Fetch.Btc do
  use Mix.Task

  def run(_args) do
    res = HTTPoison.get!("https://blockchain.info/ticker")
    IO.inspect(res)
  end
end

当我运行mix fetch.btc时,我得到了错误:

代码语言:javascript
复制
** (ArgumentError) argument error
    (stdlib) :ets.lookup_element(:hackney_config, :mod_metrics, 2)
    PROJ_DIR/deps/hackney/src/hackney_metrics.erl:27: :hackney_metrics.get_engine/0
    PROJ_DIR/deps/hackney/src/hackney_connect.erl:78: :hackney_connect.create_connection/5
    PROJ_DIR/deps/hackney/src/hackney_connect.erl:47: :hackney_connect.connect/5
    PROJ_DIR/deps/hackney/src/hackney.erl:330: :hackney.request/5
    lib/httpoison/base.ex:787: HTTPoison.Base.request/6
    lib/httpoison.ex:128: HTTPoison.request!/5
    lib/mix/tasks/fetch.btc.ex:14: Mix.Tasks.Fetch.Btc.run/1
    (mix) lib/mix/task.ex:331: Mix.Task.run_task/3
    (mix) lib/mix/cli.ex:79: Mix.CLI.run_task/2
    (elixir) lib/code.ex:767: Code.require_file/2

但是在我的控制器中,这个代码res = HTTPoison.get!("https://blockchain.info/ticker")是工作成功的!

信息:

代码语言:javascript
复制
hackney: 1.15.1
httpoison: 1.5.0
phoenix: 1.4.3
  1. 我做错了什么?
  2. 在混合任务中做http请求的正确方法是什么?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-02 06:24:24

当应用程序及其所有依赖项都已经启动时,控制器中的代码就会运行。mix任务在:mix应用程序中运行,该应用程序在默认情况下显然不会启动:hackney

您所需要的只是确保它已经手动启动/启动:

代码语言:javascript
复制
def run(_args) do
  # ⇓⇓⇓⇓⇓⇓⇓ THIS ⇓⇓⇓⇓⇓⇓⇓
  Application.ensure_all_started(:hackney)
  # ⇑⇑⇑⇑⇑⇑⇑ THIS ⇑⇑⇑⇑⇑⇑⇑

  res = HTTPoison.get!("https://blockchain.info/ticker")
  IO.inspect(res)
end
票数 4
EN

Stack Overflow用户

发布于 2019-05-02 06:42:53

您还可以在实际调用之前使用HTTPoison.start()。如果您不想每次在混合文件中启动hackney应用程序,或者您不想开始使用Application,这也是有效的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55946337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档