如何从牛仔获得http参数?

why*_*why 7 erlang cowboy

我正在使用牛仔(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.
Run Code Online (Sandbox Code Playgroud)

joh*_*hlo 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检索所有查询字符串值的列表.

  • BTW,cowboy_http_req现在只改为cowboy_req (3认同)