iex> 如何导入 HTTPoison
iex> how to import HTTPoison
我是 Elixir 的新手。我希望它与 Python 或 R 类似,可以轻松下载和更新模块。
我已经创建了一个使用 HTTPoison 的混合项目,但我真的只是想从解释器中试用 HTTPoison。
$ iex
Erlang/OTP 22 [erts-10.4.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] [dtrace]
Interactive Elixir (1.9.0) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> import HTTPoison
** (CompileError) iex:1: module HTTPoison is not loaded and could not be found
iex(1)>
以下是 Justin Wood 描述的步骤。 mix
是 elixir 的包管理器。
如果你想在 iex 中使用 HTTPoison,你应该这样做:
1)
$ mix new myproj
* creating README.md
* creating .formatter.exs
* creating .gitignore
* creating mix.exs
* creating config
* creating config/config.exs
* creating lib
* creating lib/myproj.ex
* creating test
* creating test/test_helper.exs
* creating test/myproj_test.exs
Your Mix project was created successfully.
You can use "mix" to compile it, test it, and more:
cd myproj
mix test
Run "mix help" for more commands.
2)
$ cd myproj
3) 转到 hex.pm 并查找最新版本的 httppoison:
在右上角 mix.exs
下,复制元组 {:httpoison, "~> 1.5"}
。
4) 在您的 myproj/mix.exs
文件中将元组添加到 deps:
5) 下载依赖:
.../myproj$ mix deps.get
Resolving Hex dependencies...
Dependency resolution completed:
New:
certifi 2.5.1
hackney 1.15.1
httpoison 1.5.1
idna 6.0.0
metrics 1.0.1
mimerl 1.2.0
parse_trans 3.3.0
ssl_verify_fun 1.1.4
unicode_util_compat 0.4.1
* Getting httpoison (Hex package)
* Getting hackney (Hex package)
* Getting certifi (Hex package)
* Getting idna (Hex package)
* Getting metrics (Hex package)
* Getting mimerl (Hex package)
* Getting ssl_verify_fun (Hex package)
* Getting unicode_util_compat (Hex package)
* Getting parse_trans (Hex package)
6) 启动 iex:
.../myproj$ iex -S mix
Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
===> Compiling parse_trans
===> Compiling mimerl
===> Compiling metrics
===> Compiling unicode_util_compat
===> Compiling idna
==> ssl_verify_fun
Compiling 7 files (.erl)
Generated ssl_verify_fun app
===> Compiling certifi
===> Compiling hackney
==> httpoison
Compiling 3 files (.ex)
Generated httpoison app
==> myproj
Compiling 1 file (.ex)
Generated myproj app
Interactive Elixir (1.8.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
7) 启动 httppoison 并发出一些请求:
iex(1)> HTTPoison.start
{:ok, []}
iex(2)> HTTPoison.get! "http://google.com"
%HTTPoison.Response{
body: "<HTML><HEAD><meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">\n<TITLE>301 Moved</TITLE></HEAD><BODY>\n<H1>301 Moved</H1>\nThe document has moved\n<A HREF=\"http://www.google.com/\">here</A>.\r\n</BODY></HTML>\r\n",
headers: [
{"Location", "http://www.google.com/"},
{"Content-Type", "text/html; charset=UTF-8"},
{"Date", "Mon, 29 Jul 2019 03:56:22 GMT"},
{"Expires", "Wed, 28 Aug 2019 03:56:22 GMT"},
{"Cache-Control", "public, max-age=2592000"},
{"Server", "gws"},
{"Content-Length", "219"},
{"X-XSS-Protection", "0"},
{"X-Frame-Options", "SAMEORIGIN"}
],
request: %HTTPoison.Request{
body: "",
headers: [],
method: :get,
options: [],
params: %{},
url: "http://google.com"
},
request_url: "http://google.com",
status_code: 301
}
我是 Elixir 的新手。我希望它与 Python 或 R 类似,可以轻松下载和更新模块。
我已经创建了一个使用 HTTPoison 的混合项目,但我真的只是想从解释器中试用 HTTPoison。
$ iex
Erlang/OTP 22 [erts-10.4.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] [dtrace]
Interactive Elixir (1.9.0) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> import HTTPoison
** (CompileError) iex:1: module HTTPoison is not loaded and could not be found
iex(1)>
以下是 Justin Wood 描述的步骤。 mix
是 elixir 的包管理器。
如果你想在 iex 中使用 HTTPoison,你应该这样做:
1)
$ mix new myproj
* creating README.md
* creating .formatter.exs
* creating .gitignore
* creating mix.exs
* creating config
* creating config/config.exs
* creating lib
* creating lib/myproj.ex
* creating test
* creating test/test_helper.exs
* creating test/myproj_test.exs
Your Mix project was created successfully.
You can use "mix" to compile it, test it, and more:
cd myproj
mix test
Run "mix help" for more commands.
2)
$ cd myproj
3) 转到 hex.pm 并查找最新版本的 httppoison:
在右上角 mix.exs
下,复制元组 {:httpoison, "~> 1.5"}
。
4) 在您的 myproj/mix.exs
文件中将元组添加到 deps:
5) 下载依赖:
.../myproj$ mix deps.get
Resolving Hex dependencies...
Dependency resolution completed:
New:
certifi 2.5.1
hackney 1.15.1
httpoison 1.5.1
idna 6.0.0
metrics 1.0.1
mimerl 1.2.0
parse_trans 3.3.0
ssl_verify_fun 1.1.4
unicode_util_compat 0.4.1
* Getting httpoison (Hex package)
* Getting hackney (Hex package)
* Getting certifi (Hex package)
* Getting idna (Hex package)
* Getting metrics (Hex package)
* Getting mimerl (Hex package)
* Getting ssl_verify_fun (Hex package)
* Getting unicode_util_compat (Hex package)
* Getting parse_trans (Hex package)
6) 启动 iex:
.../myproj$ iex -S mix
Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
===> Compiling parse_trans
===> Compiling mimerl
===> Compiling metrics
===> Compiling unicode_util_compat
===> Compiling idna
==> ssl_verify_fun
Compiling 7 files (.erl)
Generated ssl_verify_fun app
===> Compiling certifi
===> Compiling hackney
==> httpoison
Compiling 3 files (.ex)
Generated httpoison app
==> myproj
Compiling 1 file (.ex)
Generated myproj app
Interactive Elixir (1.8.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
7) 启动 httppoison 并发出一些请求:
iex(1)> HTTPoison.start
{:ok, []}
iex(2)> HTTPoison.get! "http://google.com"
%HTTPoison.Response{
body: "<HTML><HEAD><meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">\n<TITLE>301 Moved</TITLE></HEAD><BODY>\n<H1>301 Moved</H1>\nThe document has moved\n<A HREF=\"http://www.google.com/\">here</A>.\r\n</BODY></HTML>\r\n",
headers: [
{"Location", "http://www.google.com/"},
{"Content-Type", "text/html; charset=UTF-8"},
{"Date", "Mon, 29 Jul 2019 03:56:22 GMT"},
{"Expires", "Wed, 28 Aug 2019 03:56:22 GMT"},
{"Cache-Control", "public, max-age=2592000"},
{"Server", "gws"},
{"Content-Length", "219"},
{"X-XSS-Protection", "0"},
{"X-Frame-Options", "SAMEORIGIN"}
],
request: %HTTPoison.Request{
body: "",
headers: [],
method: :get,
options: [],
params: %{},
url: "http://google.com"
},
request_url: "http://google.com",
status_code: 301
}