inets httpc: пример клиента в руководстве пользователя не работает

Я скопировал следующий код из руководства пользователя inets:

$ erl
Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V8.2  (abort with ^G)

1> inets:start().
ok

2> httpc:set_options([{proxy, {{"www-proxy.mycompany.com", 8000}, ["localhost"]}}]).
ok

3> {ok, {{Version, 200, ReasonPhrase}, Headers, Body}} = httpc:request("http://www.erlang.org").
* exception error: no match of right hand side value 
                {error,
                    {failed_connect,
                        [{to_address,{"www-proxy.mycompany.com",8000}},
                         {inet,[inet],etimedout}]}}

Мне нужен совет о том, как успешно выполнить этот запрос.


person 7stud    schedule 25.02.2018    source источник


Ответы (1)


Кажется, это работает:

$ erl
Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V8.2  (abort with ^G)

1> inets:start().
ok

2> {ok, {{Version, 200, ReasonPhrase}, Headers, Body}} = httpc:request("http://www.erlang.org").
{ok,{{"HTTP/1.1",200,"OK"},
     [{"connection","keep-alive"},
      {"date","Sun, 25 Feb 2018 13:44:59 GMT"},
      {"server","nginx"},
      {"vary","Accept-Encoding"},
      {"content-length","12816"},
      {"content-type","text/html; charset=UTF-8"}],
     "<!DOCTYPE html>\n<html>\n  <head>\n    <title>Erlang Programming Language</title>\n    <meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"/>\n    <meta name=\"description\" content=\"Erlang Programming Language\"/>\n    <meta name=\"keywords\" content=\"erlang, functional, programming, fault-tolerant, distributed, multi-platform, portable, software, multi-core, smp, concurrency\"/>\n  

Руководство пользователя говорит:

Следующие вызовы используют профиль клиента по умолчанию. Используйте прокси "www-proxy.mycompany.com:8000", за исключением запросов к localhost. Это относится ко всем следующим запросам.

что имеет для меня такой же смысл, как:

Меценат в tincidunt диам. Pellentesque in orcised dolor vulputate tincidunt. Etiam malesuada finibus nisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Чтобы остановить клиент, я просто делаю:

  inets:stop()

?

Редактировать: я, должно быть, понял, как остановить сервер, потому что я сделал это в этом коде:

Erlang запрос на чтение сообщения

person 7stud    schedule 25.02.2018