erlang - 如何从 Cowboy 获取 http 参数?

标签 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.

最佳答案

您应该使用 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检索所有查询字符串值的列表。

关于erlang - 如何从 Cowboy 获取 http 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11627307/

相关文章:

docker - 系统重启后 Mnesia 无法识别数据(no_exists 错误)

mysql - Erlang json验证问题

Elixir Plug Cowboy 不使用端口 80

erlang - Cowboy HTTP POST 处理程序

rest - 为 Cowboy REST API 启用 CORS

为 BEAM 创建硬件加速管道

syntax - 如何使用 erl_lint 来检查 Erlang 模块的语法?

erlang - 如何在 Elixir 中等待多个任务?

javascript - 使用 cowboy 和 MessagePack 通过 websocket 发送二进制数据

routes - 有约束的牛仔路由不断失败