= cowboy_req:reply(3) == Name cowboy_req:reply - Send the response == Description [source,erlang] ---- reply(Status, Req :: cowboy_req:req()) -> reply(StatusCode, #{}, Req) reply(Status, Headers, Req :: cowboy_req:req()) -> Req reply(Status, Headers, Body, Req :: cowboy_req:req()) -> Req Status :: cowboy:http_status() Headers :: cowboy:http_headers() Body :: cowboy_req:resp_body() ---- Send the response. The header names must be given as lowercase binary strings. While header names are case insensitive, Cowboy requires them to be given as lowercase to function properly. Cowboy does not allow duplicate header names. Headers set by this function may overwrite those set by `set_resp_header/3` and `set_resp_headers/2`. Use link:man:cowboy_req:set_resp_cookie(3)[cowboy_req:set_resp_cookie(3)] instead of this function to set cookies. The `reply/2,3` functions will send the body set previously, if any. The `reply/4` function always sends the given body, overriding any previously set. You do not need to set the content-length header when sending a response body. Cowboy takes care of it automatically. You should however provide a content-type header. No further data can be transmitted after this function returns. This includes the push mechanism. Attempting to send two replies, or to push resources after a reply has been sent, will result in an error. == Arguments Status:: The status code for the response. Headers:: The response headers. Header names must be given as lowercase binary strings. Body:: The body can be either a binary value, an iolist or a `sendfile` tuple telling Cowboy to send the contents of a file. Req:: The Req object. == Return value A new Req object is returned. The returned Req object should be used from that point onward as it contains updated information about the state of the request. == Changelog * *2.0*: Only the Req is returned, it is no longer wrapped in a tuple. * *1.0*: Function introduced. == Examples .Reply [source,erlang] ---- Req = cowboy_req:reply(404, Req0). ---- .Reply with custom headers [source,erlang] ---- Req = cowboy_req:reply(401, #{ <<"www-authenticate">> => <<"Basic realm=\"erlang.org\"">> }, Req0). ---- .Reply with custom headers and a body [source,erlang] ---- Req = cowboy_req:reply(200, #{ <<"content-type">> => <<"text/plain">> }, "Hello world!", Req0). ---- == See also link:man:cowboy_req(3)[cowboy_req(3)], link:man:cowboy_req:set_resp_cookie(3)[cowboy_req:set_resp_cookie(3)], link:man:cowboy_req:set_resp_header(3)[cowboy_req:set_resp_header(3)], link:man:cowboy_req:set_resp_headers(3)[cowboy_req:set_resp_headers(3)], link:man:cowboy_req:set_resp_body(3)[cowboy_req:set_resp_body(3)], link:man:cowboy_req:stream_reply(3)[cowboy_req:stream_reply(3)], link:man:cowboy_req:push(3)[cowboy_req:push(3)]