7

1つのRESTfulWebサービスにカウボーイ(https://github.com/extend/cowboy )を使用しています。「http:// localhost:8080 /?a = 1&b = 2&c=32」からパラメーターを取得する必要があります。

init({tcp, http}, Req, Opts) ->
    log4erl:debug("~p~n", [Opts]),
    {ok, Req, undefined_state}.

handle(Req, State) ->
    {ok, Req2} = cowboy_http_req:reply(200, [], <<"Hello World!">>, Req),
    io:format("How to get the params from Req ? "),
    {ok, Req2, State}.

terminate(Req, State) ->
    log4erl:debug("~p~p~n", [Req, State]),
    ok.
4

2 に答える 2

11

cowboy_http_req:qs_val/2この関数を使用する必要があります。たとえばcowboy_http_req:qs_val(<<"a">>, Req)https://github.com/extend/cowboy/blob/master/examples/echo_get/src/toppage_handler.erlを参照してください 。

cowboy_http_req:qs_vals/1を使用して、すべてのクエリ文字列値のリストを取得することもできます。

于 2012-07-24T09:26:10.030 に答える
1

カウボーイ2にアップグレードした人は、クエリパラメータを取得する方法が2つあります。

あなたはそれらをすべて使用することによって得ることができますcowboy_req:parse_qs/1

QsVals = cowboy_req:parse_qs(Req),
{_, Lang} = lists:keyfind(<<"lang">>, 1, QsVals).

またはを使用して特定のものcowboy_req:match_qs/2

#{id := ID, lang := Lang} = cowboy_req:match_qs([id, lang], Req).

これらの例が見つかったカウボーイのドキュメントで詳細をお読みください。

于 2019-06-12T09:55:01.620 に答える