2

http://www.myserver.com/exile?Key1=Value1&Key2=Value2

当我向服务器收到这种格式的请求时,我该如何处理这个请求?我需要做什么:需要获取所有值并运行 Erlang 模块,并将结果发送给客户端。流放是 CGI 吗?如果是,它为什么没有 .cgi 扩展名?

附加数据:我在我的服务器(运行 linux 服务器的桌面)上设置了一个 Yaws。yaws.conf 文件已配置。

4

1 回答 1

4

以下是解决方案:

<erl>

出(A)->
    值 = yaws_api:parse_query(A),
    Value1 = proplists:get_value("Key1",Values),
    Value2 = proplists:get_value("Key2",Values),
    %% 然后对他们做任何事情....
    %% ....
    {html,"Json 数据或 HTML 标记或 XML 数据或数据字符串"}。
    %% 或 {ehtml,[{p,[],""}]}。

<erl>

更多信息在这里:http: //yaws.hyber.org/query.yaws

<erl>

出(A)->
    Value1 = yaws_api:queryvar(A,"Key1"),
    Value2 = yaws_api:queryvar(A,"Key2"),
    %%这里需要小心
    %% 如果找不到值,则
    %% 变量将包含一个原子“未定义”
    %% 然后对他们做任何事情....
    %% ....
    {html,"Json 数据或 HTML 标记或 XML 数据或数据字符串"}。
    %% 或 {ehtml,[{p,[],""}]}。

<erl>

或者

<erl>

出(A)->
    Value1 = yaws_api:getvar(A,"Key1"),
    Value2 = yaws_api:getvar(A,"Key2"),
    %%这里需要小心
    %% 如果找不到值,则
    %% 变量将包含一个原子“未定义”
    %% 然后对他们做任何事情....
    %% ....
    {html,"Json 数据或 HTML 标记或 XML 数据或数据字符串"}。
    %% 或 {ehtml,[{p,[],""}]}。

<erl>

阅读有关模块的更多信息:yaws_api.erl

*注意 *避免使用最后一个选项 ( getvar/2),因为它首先检查 POST 数据,然后还检查 GET 数据,寻找您指定的参数。仅当您不确定参数是否随 GET 或 POST 请求数据一起出现时才应使用它。

于 2012-01-04T06:35:07.527 回答