I'm started learing Erlang. I want to write simple cowboy-based HTTP server, which can receive files sending via HTTP POST. So I create simple handler:
-module(handler).
-behaviour(cowboy_http_handler).
-export([init/3,handle/2,terminate/3]).
init({tcp, http}, Req, _Opts) ->
{ok, Req, undefined_state}.
handle(Req, State) ->
Body = <<"<h1>Test</h1>">>,
{ok, Req2} = cowboy_req:reply(200, [], Body, Req),
{ok, Req2, State}.
terminate(_Reason, _Req, _State) ->
ok.
This code can handle GET request. But how can I process HTTP POST request?
Your code handles requests with any HTTP methods. If you want to handle particular HTTP request method you have to test the method name in callback handle/2. Here you can see a simple example:
To get a content of POST request you can use function cowboy_req:body_qs/2 for example. There are other functions for handling body of HTTP requests in cowboy. Check the documentation and choose the way which is convenient for you.