2008/06/07

[Erlang] http:request の前に inets:start() が必要

ひさしぶりに Erlang で http:request とかしてみたら動かない。ドキュメント を読んでみるとまず inets:start() が必要らしい。

1> inets:start().
2> {ok, {Status, Header, Body}} = http:request("http://www.google.co.jp").

Ftp も同様に inets:start() が必要。さらに以前 ftp:open, ftp:close だったものが、inets:start(ftpc,...), inetsA:stopに変更されているみたい。

#!/usr/bin/env escript

main(_) ->
inets:start(),
{ok, Pid} = inets:start(ftpc, [{host, "ftp.example.com"}]),
ftp:user(Pid, "user", "password"),
ftp:cd(Pid, "/public_html/erlang"),
lists:foreach(fun(File) ->
ftp:send(Pid, File)
end,
["cookbook.html",
"cookbook.css",
"index.html"]),
inets:stop(ftpc, Pid).

Erlang はメジャーバージョンが12。着々とバージョンアップを重ね、着々と機能を向上させている。こういうところはとってもえらいと思うよ、Erlang.

0 件のコメント: