diff options
-rw-r--r-- | src/cowboy_req.erl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/cowboy_req.erl b/src/cowboy_req.erl index 0c4969d..8c9a618 100644 --- a/src/cowboy_req.erl +++ b/src/cowboy_req.erl @@ -564,8 +564,14 @@ set_meta(Name, Value, Req=#http_req{meta=Meta}) -> %% @doc Return whether the request message has a body. -spec has_body(cowboy_req:req()) -> boolean(). has_body(Req) -> - lists:keymember(<<"content-length">>, 1, Req#http_req.headers) orelse - lists:keymember(<<"transfer-encoding">>, 1, Req#http_req.headers). + case lists:keyfind(<<"content-length">>, 1, Req#http_req.headers) of + {_, <<"0">>} -> + false; + {_, _} -> + true; + _ -> + lists:keymember(<<"transfer-encoding">>, 1, Req#http_req.headers) + end. %% @doc Return the request message body length, if known. %% |