Erlang:运行 自定义模块
Erlang: running custom module
Windows 7 x64,Erlang-OTP 17.
我写了这样的简单模块:
-module (somequery).
-export ([fbquery/2]).
fbquery(P1,P2) ->
inets:start(),
ssl:start(),
token = "78a8shd67tyajsndweiu03hr83h19j",
Encoded = {"Authorization","Basic " ++ base64:encode_to_string(lists:append([token,":",""]))},
ContentType = "application/xml",
Headers = [Encoded, {"Content-Type",ContentType}],
Options = [{body_format,binary}],
{ok, File}=file:read_file(P1),
Res = httpc:request(post, {"https://datapi.com/api/xml4-8", Headers, ContentType, File}, [], Options),
file:write_file(P2, io_lib:fwrite("~p.\n", [Res])).
此代码在交互模式下工作 (werl.exe),并编译成 beam。
问题是现在如何使用 *.erl 或编译的 *.beam 模块?如何导入它和运行fbquery/2方法?
首先,您需要使用参数 -pa Dir1 Dir2 ...
添加包含您的光束的目录。它会将目录添加到 erlang 路径,您将能够在 shell.
中键入 somequery:fbquery(Arg1,Arg2)
然后,您可以使用参数 -s module function [args..]
以指定函数启动 erl。
您可以在 erl 的 erlang 文档中阅读它。
Windows 7 x64,Erlang-OTP 17.
我写了这样的简单模块:
-module (somequery).
-export ([fbquery/2]).
fbquery(P1,P2) ->
inets:start(),
ssl:start(),
token = "78a8shd67tyajsndweiu03hr83h19j",
Encoded = {"Authorization","Basic " ++ base64:encode_to_string(lists:append([token,":",""]))},
ContentType = "application/xml",
Headers = [Encoded, {"Content-Type",ContentType}],
Options = [{body_format,binary}],
{ok, File}=file:read_file(P1),
Res = httpc:request(post, {"https://datapi.com/api/xml4-8", Headers, ContentType, File}, [], Options),
file:write_file(P2, io_lib:fwrite("~p.\n", [Res])).
此代码在交互模式下工作 (werl.exe),并编译成 beam。 问题是现在如何使用 *.erl 或编译的 *.beam 模块?如何导入它和运行fbquery/2方法?
首先,您需要使用参数 -pa Dir1 Dir2 ...
添加包含您的光束的目录。它会将目录添加到 erlang 路径,您将能够在 shell.
somequery:fbquery(Arg1,Arg2)
然后,您可以使用参数 -s module function [args..]
以指定函数启动 erl。
您可以在 erl 的 erlang 文档中阅读它。