使用 HTTPoison 初始化模块属性
Use HTTPoison to initialize a module attribute
我正在尝试像这样初始化模块属性
response = HTTPoison.get! url
{:ok, response} = Poison.decode(response.body)
@attr response
我以前用一个文件做过,像这样:
@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 的响应吗?
我收到此错误:
== 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)
依赖的应用程序不会在编译时自动启动。使用前需要明确启动HTTPoison
:
HTTPoison.start()
response = HTTPoison.get! url
{:ok, response} = Poison.decode(response.body)
@attr response
我正在尝试像这样初始化模块属性
response = HTTPoison.get! url
{:ok, response} = Poison.decode(response.body)
@attr response
我以前用一个文件做过,像这样:
@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 的响应吗? 我收到此错误:
== 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)
依赖的应用程序不会在编译时自动启动。使用前需要明确启动HTTPoison
:
HTTPoison.start()
response = HTTPoison.get! url
{:ok, response} = Poison.decode(response.body)
@attr response