使用Elixir中的:httpc erlang模块

使用Elixir中的:httpc erlang模块,elixir,Elixir,我对长生不老药很陌生,没有任何erlang经验(或func-y的东西),但这一点很快就会变得明显….-> iex(2)> :inets.start() :ok iex(3)> :httpc.request(["http://www.erlang.org"]) {:error, :no_scheme} 我不知道什么是“无计划”。 我在谷歌上搜索过no_计划之类的东西,我确信这是显而易见的,但我真的什么也没找到。我能在erlang文档中找到的唯一模糊相关的东西是-> iex(4)>

我对长生不老药很陌生,没有任何erlang经验(或func-y的东西),但这一点很快就会变得明显….->

iex(2)> :inets.start()
:ok
iex(3)> :httpc.request(["http://www.erlang.org"])
{:error, :no_scheme}
我不知道什么是“无计划”。 我在谷歌上搜索过no_计划之类的东西,我确信这是显而易见的,但我真的什么也没找到。我能在erlang文档中找到的唯一模糊相关的东西是->

iex(4)> :http_uri.scheme_defaults
[http: 80, https: 443, ftp: 21, ssh: 22, sftp: 22, tftp: 69]
或者我不符合RFC2616或其他要求。。。(目前)我没有主意了

长生不老药和二郎是超级棒,尽管如此,任何帮助我进一步的旅程将不胜感激

谢谢你的帮助

我在erl试过了

1> inets:start().
ok
2> httpc:request("http://www.erlang.org").
{ok,{{"HTTP/1.1",200,"OK"},
     [{"date","Wed, 20 Nov 2013 23:15:45 GMT"},
      {"server","inets/5.7.1"},
      {"content-length","10385"},
      {"content-type","text/html; charset=utf-8"},
      {"set-cookie",
       "eptic_cookie=erlangorg@hades-3680318586833850369; path=/"}],
        "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE htm
    etc...
1>inets:start()。
好啊
2> httpc:请求(“http://www.erlang.org").
{好的,{“HTTP/1.1”,200,“好的”},
[{“日期”,“2013年11月20日星期三23:15:45 GMT”},
{“服务器”,“inets/5.7.1”},
{“内容长度”,“10385”},
{“内容类型”,“text/html;charset=utf-8”},
{“设置cookie”,
“易普提克饼干”=erlangorg@hades-3680318586833850369;路径=/“}],
“\n以下内容如何

:inets.start
:httpc.request(:get, {'http://www.erlang.org', []}, [], [])
erlang中的
是字符列表,elixir中的
elixir中的
是二进制的


您可以使用
:httpc.request('http://www.erlang.org)
简而言之

对于https请求,还有一个额外的步骤-需要SSL:

> :inets.start
> :ssl.start
> :httpc.request ‘https://elixir-lang.org'
请注意较短的请求格式


我使用的是IEx 1.7.3(使用Erlang/OTP 21编译)。

当与Erlang代码交互时,速成课程非常方便:我在过去几天里已经学习过几次,但都找不到任何东西。最后是关于Erlang->Elixir的部分,但不是相反的部分(除非我一直错过它).我只是重新找到了我现在意识到我所需要的一切。我只是在寻找如何做get->:get的事情,但从来没有注意到字符串之间的差异。总体上也非常感谢!我过得非常愉快。啊,我刚刚看到链接的作者解释了一切。这将教会我如何扫描。Scheme是url的第一部分。对于例如“http://”、“https://”。如果使用二进制而不是列表,则无法正确读取。这导致了
:no_scheme
错误。我仍然收到
{:error,{:failed_connect,[{:to_address,{www.erlang.org',443},{:inet,[:inet],:ssl_not start}}
尽管请求了“http”协议,我还是修复了@pob建议的调用
:ssl.start
。我猜服务器端强制重定向到https。