代码之家  ›  专栏  ›  技术社区  ›  AG1

iex>如何导入HTTPoison

  •  0
  • AG1  · 技术社区  · 5 年前

    我对灵丹妙药很陌生。我希望它与Python或R类似,在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)>
    
    0 回复  |  直到 5 年前
        1
  •  4
  •   7stud    5 年前

    以下是贾斯汀·伍德描述的步骤。 mix 是灵药的包装经理。

    如果您想在iex中使用HTTPoison,您应该执行以下操作:

    (一)

    $ 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 并查找最新版本的httpoison:

    enter image description here

    在右上角,在下面 mix.exs ,复制元组 {:httpoison, "~> 1.5"} .

    4) 在你的 myproj/mix.exs 文件将元组添加到deps:

    enter image description here

    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) 启动httpoison并发出一些请求:

    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
    }
    
    推荐文章