0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 12:20:24 +00:00

Fix echo_post example

This commit is contained in:
Loïc Hoguin 2016-06-08 23:35:02 +02:00
parent 1470f88319
commit 4ced1d0994
3 changed files with 31 additions and 9 deletions

View file

@ -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) ->

View file

@ -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).

View file

@ -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.