首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用HTTPoison初始化模块属性

使用HTTPoison初始化模块属性
EN

Stack Overflow用户
提问于 2018-06-19 14:58:09
回答 1查看 1.1K关注 0票数 2

我正在尝试像这样初始化一个模块属性

代码语言:javascript
复制
  response = HTTPoison.get! url
  {:ok, response} = Poison.decode(response.body)
  @attr response

我以前用过一个文件,像这样的:

代码语言:javascript
复制
  @external_resource file = Path.join([__DIR__, "file.txt"])
  Module.register_attribute __MODULE__, :attr, accumulate: true

  for line <- File.stream!(file, [], :line) do
    @attr line
    ...

不可能对HTTPoison和获取API的响应做同样的操作吗?我收到这个错误:

代码语言:javascript
复制
== Compilation error in file lib/module.ex ==
** (ArgumentError) argument error
    (stdlib) :ets.lookup_element(:hackney_config, :mod_metrics, 2)
    /project/deps/hackney/src/hackney_metrics.erl:27: :hackney_metrics.get_engine/0
    /project/deps/hackney/src/hackney_connect.erl:69: :hackney_connect.create_connection/5
    /project/deps/hackney/src/hackney_connect.erl:37: :hackney_connect.connect/5
    /project/deps/hackney/src/hackney.erl:316: :hackney.request/5
    lib/httpoison/base.ex:630: HTTPoison.Base.request/9
    lib/httpoison.ex:66: HTTPoison.request!/5
    lib/module.ex:4: (module)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-19 15:28:22

依赖的应用程序不会在编译时自动启动。在使用HTTPoison之前,需要显式地启动它:

代码语言:javascript
复制
HTTPoison.start()
response = HTTPoison.get! url
{:ok, response} = Poison.decode(response.body)
@attr response
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50931455

复制
相关文章

相似问题

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