diff options
-rw-r--r-- | examples/echo_post/src/echo_post_app.erl | 6 | ||||
-rw-r--r-- | examples/echo_post/src/toppage_handler.erl | 15 | ||||
-rw-r--r-- | test/examples_SUITE.erl | 19 |
3 files changed, 31 insertions, 9 deletions
diff --git a/examples/echo_post/src/echo_post_app.erl b/examples/echo_post/src/echo_post_app.erl index 7d86c53..9bb7591 100644 --- a/examples/echo_post/src/echo_post_app.erl +++ b/examples/echo_post/src/echo_post_app.erl @@ -16,9 +16,9 @@ start(_Type, _Args) -> {"/", toppage_handler, []} ]} ]), - {ok, _} = cowboy:start_http(http, 100, [{port, 8080}], [ - {env, [{dispatch, Dispatch}]} - ]), + {ok, _} = cowboy:start_clear(http, 100, [{port, 8080}], #{ + env => #{dispatch => Dispatch} + }), echo_post_sup:start_link(). stop(_State) -> diff --git a/examples/echo_post/src/toppage_handler.erl b/examples/echo_post/src/toppage_handler.erl index de75e5e..a84bfe5 100644 --- a/examples/echo_post/src/toppage_handler.erl +++ b/examples/echo_post/src/toppage_handler.erl @@ -14,16 +14,19 @@ init(Req, Opts) -> maybe_echo(<<"POST">>, true, Req) -> {ok, PostVals, Req2} = cowboy_req:body_qs(Req), Echo = proplists:get_value(<<"echo">>, PostVals), - echo(Echo, Req2); + echo(Echo, Req2), + Req2; maybe_echo(<<"POST">>, false, Req) -> - cowboy_req:reply(400, [], <<"Missing body.">>, Req); + cowboy_req:reply(400, [], <<"Missing body.">>, Req), + Req; maybe_echo(_, _, Req) -> %% Method not allowed. - cowboy_req:reply(405, Req). + cowboy_req:reply(405, Req), + Req. echo(undefined, Req) -> cowboy_req:reply(400, [], <<"Missing echo parameter.">>, Req); echo(Echo, Req) -> - cowboy_req:reply(200, [ - {<<"content-type">>, <<"text/plain; charset=utf-8">>} - ], Echo, Req). + cowboy_req:reply(200, #{ + <<"content-type">> => <<"text/plain; charset=utf-8">> + }, Echo, Req). diff --git a/test/examples_SUITE.erl b/test/examples_SUITE.erl index a461d79..fb95f3b 100644 --- a/test/examples_SUITE.erl +++ b/test/examples_SUITE.erl @@ -111,3 +111,22 @@ do_echo_get(Transport, Protocol, Config) -> {response, nofin, 200, _} = gun:await(ConnPid, Ref), {ok, <<"this is fun">>} = gun:await_body(ConnPid, Ref), ok. + +echo_post(Config) -> + doc("POST parameter echo example."), + try + do_compile_and_start(echo_post), + do_echo_post(tcp, http, Config), + do_echo_post(tcp, http2, Config) + after + do_stop(echo_post) + end. + +do_echo_post(Transport, Protocol, Config) -> + ConnPid = gun_open([{port, 8080}, {type, Transport}, {protocol, Protocol}|Config]), + Ref = gun:post(ConnPid, "/", [ + {<<"content-type">>, <<"application/octet-stream">>} + ], <<"echo=this+is+fun">>), + {response, nofin, 200, _} = gun:await(ConnPid, Ref), + {ok, <<"this is fun">>} = gun:await_body(ConnPid, Ref), + ok. |